struts2.3.4版本中,页面地址传递Date类型参数,出错了,是版本的问题吗,传递过Date类型参数的大神进来说下!
本帖最后由 wxx284290250 于 2012-12-10 17:56:14 编辑 问题一:我在地址栏中传递了Date类型参数(相应的Action中已经写了setD(Date d)和getD()方法了),但是一直报错,大概的意思是“传递进来的参数是String类型,找不到setD(String)方法”。我记得struts2.1的时候,Date类型只要按照他规定的格式(d=1991-03-19)传进来,struts就会自动转换成Date类型啊,为什么在struts2.3.4中就不可以,是版本的问题吗。
顺便补充一下,我刚刚自定义了一个Point的类型转换器,用p=3,8传值成功。难道在struts2.3.4中也都要自己定义Date类型的转换器吗??????????????????大神们,你们平时传递日期类型是怎么传的呢,要自己定义转换器吗,还是根本不用struts传?给点经验哈,先谢下!!!
问题二:大婶们,你们现在注册转换器是用什么方式呢?xwork-conversion.properties?还是用注解:Annotation?
TestAction.java如下
package com.bjsxt.action;
import java.awt.Point;
import java.util.Date;
import com.opensymphony.xwork2.ActionSupport;
public class TestAction extends ActionSupport {
private Date d;
Point p;
@Override
public String execute() throws Exception {
return super.execute();
}
public Date getD() {
return d;
}
public void setD(Date d) {
this.d = d;
}
public Point getP() {
return p;
}
public void setP(Point p) {
this.p = p;
}
}
ognl.MethodFailedException: Method "setD" failed for object com.bjsxt.action.TestAction@10bfcf [java.lang.NoSuchMethodException: com.bjsxt.action.TestAction.setD([Ljava.lang.String;)]