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

  Print this page

1.在Struts中如何处理ActionForm中包含日期类型属性的情况 Copy to clipboard
Posted by: jinbo
Posted on: 2003-10-16 10:22

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中的日期型属性转换错误了,请问大家是如何这种问题的

2.Re:在Struts中如何处理ActionForm中包含日期类型属性的情况 [Re: jinbo] Copy to clipboard
Posted by: j1j2
Posted on: 2003-12-11 20:52

就看你输入的字串格式是否与Date的toString()格式一样了,
比如java.sql.Date为yyyy-mm-dd
而java.util.Date就不一样了,为yyyy-mm-dd hh:mm:ss.nnn

3.Re:在Struts中如何处理ActionForm中包含日期类型属性的情况 [Re: jinbo] Copy to clipboard
Posted by: SKYSPEED
Posted on: 2003-12-17 08:34

jinbo wrote:
JSP定义
<_input name="loginDate" type="text" class="line" id="loginDate">


好像这种text 只能提交 string ,而不能提交date ?
请大虾赐教!

4.Re:在Struts中如何处理ActionForm中包含日期类型属性的情况 [Re: jinbo] Copy to clipboard
Posted by: nsd
Posted on: 2003-12-17 17:31

hmmm...
可以提交date,不过是java.sql.Date,所以只能支持yyyy-mm-dd这种形式的输入。如果还有时分和秒的话你就自己定义一下那个set方法吧,定义成接收String参数的方法。就像:
public void setLoginDate(String date) {
this.loginDate = new Date(date);
}
日期的格式你自己看着办吧。

5.Re:在Struts中如何处理ActionForm中包含日期类型属性的情况 [Re: jinbo] Copy to clipboard
Posted by: hitaco
Posted on: 2003-12-22 10:16

你看一下<html:text>是否有个format格式


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923