关于struts2中ognl泛型报错的疑问 struts2 ognl 泛型 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你错的不是泛型的问题dataBean这个对象,没有data1和data2属性 bean中是有这两个属性的 public class DataBean{ private String data1; private String data2; public String getData1() { return data1; } public void setData1(String data1) { this.data1 = data1; } public String getData2() { return data2; } public void setData2(String data2) { this.data2 = data2; } @Override public String toString() { return "DataBean [data1=" + data1 + ", data2=" + data2 + "]"; } } 1,调用struts的配置文件中的action名称,不知道你有写对了没,因为你没列出struts文件2,前台的字段要与后台控制的action里面的属性相对应,你确定自己是否有正确对应 这个应该是OK的 我现在的问题是 假如我再这个action中 注入databean不用泛型 使用private Databean databean 这样的话就OK,我感觉问题是假如说你这样写 他就可以通过bean取出其属性或者也可以给属性赋值 但是假如说使用private T databean 前台传来就被认为是一个object 而无法为bean中的属性设置值 导致转换错误 。想请问下 有没有这种 在action中对bean做泛型话的编码方式 如果这样处理 那怎么解决转换的问题 这个应该是OK的 我现在的问题是 假如我再这个action中 注入databean不用泛型 使用private Databean databean 这样的话就OK,我感觉问题是假如说你这样写 他就可以通过bean取出其属性或者也可以给属性赋值 但是假如说使用private T databean 前台传来就被认为是一个object 而无法为bean中的属性设置值 导致转换错误 。想请问下 有没有这种 在action中对bean做泛型话的编码方式 如果这样处理 那怎么解决转换的问题首先我没用过!其次,我觉得前台传过来的值都是明确类型的,我不会去用泛型去做,宁愿多写一些代码或者配置! 你很幸运,遇到了我,我刚刚解决了这个问题。使用泛型,有些地方是可以,但是这里是不行的,因为涉及到对象实例化。你可以把dataBean的get、set方法写成抽象方法,dataBean这个对象去子类里用实际的类定义,然后重写get、set方法就可以了。 补充一点,在子类中重写get方法后,可能返回null,所以不能像原来那样直接return dataBean,你需要加一个判断,如果为null,需要手工创建一个 if (dataBean == null) dataBean = new DataBean() 泛型类在初始化的时候要给泛型初始化,struts的action处理类是容器生成的,实例化的时候没有定义泛型的类型,所以报错。 struts2 输入框问题 tomcat端口冲突的问题,请大家给个答案,谢谢 用过org.apache.poi.hssf的达人进 十分钟未动程序,自动关闭程序 求解:服务器端数据验证的问题! 如何运行自己建立的jsp文件夹中的程序??? 用tomcat,为什么说找不到包?而在WebLogic中可以。 oracle 中的图片在jsp中显示的问题 奇怪的问题!关于JBuilder8的!解决不了了! 谁有用jsp做的全文检索系统的代码? 纠结一夜没睡,好困,spring mvc注入抽象方法的子类注册不成功 求教Struts2配置问题
dataBean这个对象,没有data1和data2属性
bean中是有这两个属性的
private String data1;
private String data2; public String getData1() {
return data1;
} public void setData1(String data1) {
this.data1 = data1;
} public String getData2() {
return data2;
} public void setData2(String data2) {
this.data2 = data2;
} @Override
public String toString() {
return "DataBean [data1=" + data1 + ", data2=" + data2 + "]";
}
}
2,前台的字段要与后台控制的action里面的属性相对应,你确定自己是否有正确对应
这个应该是OK的 我现在的问题是 假如我再这个action中 注入databean不用泛型 使用private Databean databean 这样的话就OK,我感觉问题是假如说你这样写 他就可以通过bean取出其属性或者也可以给属性赋值 但是假如说使用private T databean 前台传来就被认为是一个object 而无法为bean中的属性设置值 导致转换错误 。想请问下 有没有这种 在action中对bean做泛型话的编码方式 如果这样处理 那怎么解决转换的问题
这个应该是OK的 我现在的问题是 假如我再这个action中 注入databean不用泛型 使用private Databean databean 这样的话就OK,我感觉问题是假如说你这样写 他就可以通过bean取出其属性或者也可以给属性赋值 但是假如说使用private T databean 前台传来就被认为是一个object 而无法为bean中的属性设置值 导致转换错误 。想请问下 有没有这种 在action中对bean做泛型话的编码方式 如果这样处理 那怎么解决转换的问题首先我没用过!其次,我觉得前台传过来的值都是明确类型的,我不会去用泛型去做,宁愿多写一些代码或者配置!
使用泛型,有些地方是可以,但是这里是不行的,因为涉及到对象实例化。
你可以把dataBean的get、set方法写成抽象方法,dataBean这个对象去子类里用实际的类定义,然后重写get、set方法就可以了。