在Struts中如何处理ActionForm中包含日期类型属性的情况

03-10-15 sparkguest
JSP定义

<_input name="loginDate" type="text" class="line" id="loginDate">

ActionForm中定义

public class LoginForm extends ActionForm{

private Date loginDate = null;

public Date getLoginDate() {

...

然后运行时报错

java.lang.IllegalArgumentException: argument type mismatch

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at org.apache.struts.util.PropertyUtils.setSimpleProperty(PropertyUtils.java:988)

at org.apache.struts.util.PropertyUtils.setNestedProperty(PropertyUtils.java:904)

at org.apache.struts.util.PropertyUtils.setProperty(PropertyUtils.java:932)

at org.apache.struts.util.BeanUtils.populate(BeanUtils.java:509)

at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:772)

at org.apache.struts.action.ActionServlet.processPopulate(ActionServlet.java:2061)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1564)

at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:165)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)

at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)

at com.caucho.server.http.Invocation.service(Invocation.java:312)

at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)

at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:221)

at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)

at com.caucho.server.TcpConnection.run(TcpConnection.java:137)

at java.lang.Thread.run(Thread.java:536)

应该是JSP中的TEXT与ActionForm中的日期型属性转换错误了,请问大家是如何这种问题的

yehs220
2003-10-16 09:11
ActionForm中用java.sql.Date试试

raynix
2003-10-16 09:23
Sting不能直接cast成Date。

sparkguest
2003-10-16 10:05
我知道String不可直接Cast为日期,我是想问这种问题如何解决

raynix
2003-10-16 10:42
我的方法可能比较笨:

将y,m,d分别读入,然后用Calendar或者SimpleDateFormat校验、转换。

猜你喜欢
3Go 1 2 3 下一页