Struts2中Could not create and/or set value back on to object的解决办法
2014-10-13 14:58
405 查看
反射机制依赖类的无参构造方法,这是熟悉反射机制的朋友都知道的一个常识.
但即使你深刻的理解这点,也并不意味着你在这方面不出错.
例子: struts2下的一个异常简单的POJO bean
出于项目上的考虑,为POJO bean,加了一个带id的构造方法,问题就出来了
原因:
struts2的model driven机制采用了反射机制
反射机制要求用户类必须要有无参构造方法
当一个类没有构造方法时,java缺省为其加一个无参构造方法
当你为一个类添加构造方法时,实际上就禁掉了java缺省为类添加无参构造方法这个动作.
也就是说当你为类添加构造方法后,你的类实际上就没有无参构造方法了,也就不支持反射机制了
解决:为类手工添加无参构造方法
但即使你深刻的理解这点,也并不意味着你在这方面不出错.
例子: struts2下的一个异常简单的POJO bean
定义非常简单,两个属性,及getter,setter public class TestBean { private String content; private Long id; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } } |
在前端用struts2里的freemarker 调用它, 直接调用bean属性,这应该属于struts2 的model driven技术 ${testBean.id} ${testBean.content} |
public class TestBean implements java.io.Serializable { public TestBean(Long id) { super(); this.id = id; } private String content; private Long id; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } } |
struts2 开始报错: Could not create and/or set value back on to object |
struts2的model driven机制采用了反射机制
反射机制要求用户类必须要有无参构造方法
当一个类没有构造方法时,java缺省为其加一个无参构造方法
当你为一个类添加构造方法时,实际上就禁掉了java缺省为类添加无参构造方法这个动作.
也就是说当你为类添加构造方法后,你的类实际上就没有无参构造方法了,也就不支持反射机制了
解决:为类手工添加无参构造方法
public class TestBean { public TestBean(Long id) { super(); this.id = id; } public TestBean() { } private String content; private Long id; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } } |
相关文章推荐
- struts2.x 的提交表单出现 Could not create and/or set value back on to object
- Could not create and/or set value back on to object .
- java异常:Could not create and/or set value back on to object 总结
- 六、ERROR - Could not create and/or set value back on to object
- IAR调试时出现IAR one or more breakpoints could not be set and have been disabled的解决办法
- Ubuntu14.0 下Hadoop启动报Error: JAVA_HOME is not set and could not be found解决办法
- windows 下安装部分gem时出现 Could not create Makefile due to some reason 的解决办法
- maven项目出现web.xml is missing and <failOnMissingWebXml> is set to true错误的解决办法
- android studio提示failed to create jvm和could not reserve enough space for object heap的解决方法
- The application is not licensed to modify or create schema for this type of data 解决办法
- SQLServer2005打开表时出现“Object reference not set to an instance of an object. (SQLEditors)”错误的解决办法
- AFNetworking 报错 JSON text did not start with array or object and option to allow fragments not set
- vs数据库访问出现Object reference not set to an instance of an object. 错误解决办法
- Hadoop启动报Error: JAVA_HOME is not set and could not be found解决办法
- Hadoop启动报Error: JAVA_HOME is not set and could not be found解决办法
- silverlight beta2.0安装成功后新建silverlight项目出现object reference not set to an instance of an object的解决办法
- hive问题Cannot get a connection, pool error Could not create a validated object 的解决办法
- silverlight项目出现object reference not set to an instance of an object的解决办法
- MSBuild could not create or connect to a task host with runtime "CLR2" and architecture "x86".
- silverlight beta2.0安装成功后新建silverlight项目出现object reference not set to an instance of an object的解决办法