关于struts2中ognl泛型报错的疑问
简单的struts2登录
一个名为DataBean的bean中有两个属性data1 data2
action 方法中对DataBean使用泛型
public class Action4<T> {
private T dataBean;
public T getDataBean() {
return dataBean;
}
public void setDataBean(T dataBean) {
this.dataBean = dataBean;
}
public String execute(){
System.out.println("---Action4---"+((DataBean)dataBean).getData1());
System.out.println("---Action4---"+dataBean);
return "success";
}
}
前台登录页面为
<form action="a4.action" method="post">
<input type="text" name="dataBean.data1"><br/>
<input type="text" name="dataBean.data2"><br/>
<input type="submit" value="处理">
</form>
登录报错
警告: Error setting expression 'dataBean.data2' with value '[Ljava.lang.String;@b6d6ab'
ognl.NoSuchPropertyException: java.lang.Object.data2
at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:166)
假如说action中不使用泛型则OK
试问 假如说我action中需要使用泛型 该如何修改
struts2??ognl??泛型
[解决办法]
你错的不是泛型的问题
dataBean这个对象,没有data1和data2属性
[解决办法]
1,调用struts的配置文件中的action名称,不知道你有写对了没,因为你没列出struts文件
2,前台的字段要与后台控制的action里面的属性相对应,你确定自己是否有正确对应
[解决办法]