如何在action中接收jsp页面传来的日期类型的数据
具体情况如下:
struts+hibernate做的小程序。
一个注册页面register.jsp ---- 一个实体类 User ----- 一个AddUserAction
其中注册页面中有个项是date类型的(让用户填写注册日期)。
该页面提交给AddUserAction
在改action中
User user = new User();
user.setUsername(request.getParameter("username"));
....
现在到set注册时间这项了,我是这样写的,但不行。
user.setCreatetime(new Date(request.getParameter("createtime")));
又这样写了
user.setCreatetime(new Date(user.getCreatetime("createtime")));
...
都是错的。好像是报的
空指针吧。。
其它的那些配置的东西都是没问题的,麻烦大家告诉我在action中怎么接收从jsp页面中传过来的日期类型的数据
使其能正确地插入到数据库(mysql)。
麻烦大家给个详细点的说明
在此谢谢了!
------解决方案--------------------时间为什么要让用户输入呢,输入的内容你还要去判断他是否合法等等,所以直接使用一个时间控件,文本框得到焦点就触发控件去选择时间。
------解决方案--------------------如果你采用的是struts1的话,把页面的值让FormBean去接,就是如果你需要页面的值时从FormBean对象中去取,如果是FormBean中的时间是java.sql.date类型的话,struts会自动封装成此对象的,但java.util.Date的话是不自动封装的!
你的不用自己写User了,使用FormBean即可,你的null指针异常说明你没有从页面获取到值,而且,页面中的日期是要有制定的格式的,一般是YYYY-MM-DD即1988-09-23这样的格式!自己再研究一下吧,只有自己研究明白的才是自己的,加油了
------解决方案--------------------注册时间不用客户端提交吧,
提交上来以后new 一个date不行了
最简单,还准确。
有必要记录精确到“用户按下注册按钮的时间”的话另议。
可以自己解析字符串到date
或者struts2的话弄一个转换器,
lz自己google一下吧
good luck
------解决方案--------------------request.getParameter() 等都是字符串 而你数据库是Date类型,需要转换下
------解决方案--------------------如果LZ是在要转的话可以采用如下代码(不过不建议因为用户输入的字符串要符合SimpleDateFormat中的格式要求才行):
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddhhmmss");
String dateString = "20071128175545";
Date date = df.parse(dateString);
user.setCreatetime(date);
------解决方案--------------------在数据库中我们一般都是用的timestamp类型的,在页面上都是用时间空间来做。
可以通过 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");进行下格式的转换。
------解决方案--------------------
------解决方案-------------------- 如果你用的是 Struts 就根本不需要这样了
二呢 一般也不这么写。 如果你想把注册时间存进去 直接在 action 中new 个Date() 当前时间即可
如果只为显示 感觉用 String 类型 更方便
从jsp 传到 ACTION 都是 String 类型的
------解决方案--------------------用Struts的话java.util.Date转换一劳永逸的方法就是写个日期转换器,
比如
package zizz.struts;
import java.util.Date;
import org.apache.struts.action.ActionForm;
import org.apache.commons.beanutils.ConvertUtils;
/**
* UserForm对应着提交页面的网页表单信息
* @author chen yuzhe
*
*/
public class UserForm extends ActionForm{
static{
ConvertUtils.register(new DateConverter(), Date.class);