谈谈struts2、spring的getter、setter方法及令人崩溃的错误
2011-09-08 08:53
471 查看
struts2和Spring可谓是天生的搭档。两者均需要同名变量及相应的getter、setter方法。struts2通过它们传值,而spring用来注入对象。正常情况下,规则一般是这样的:变量或对象的名字用小写字母开头,对应的getter、setter方法将第一个小写字母变成大写字母。例如,变量名为userName,对应的方法为getUserName和SetUserName。在myeclipse和eclipse中,可以半自动生成getter、setter方法。
上面提到的是一般的规则。既然提到一般,自然就有特殊情况。正是这特殊的情况,昨天浪费了大半天的时间,实在是悲催。问题是在spring中遇到的,struts2中是否相同,还有待实证。
特殊的情况是以t开头的对象。myeclipse在生成getter、setter方法时,自动采用上面的一般原则。web server启动时并不会提示错误,但使用到相关类时就会提示***是invalid property,并导致被注入的类无法instantiate。而eclipse要聪明一些,在遇到t开头的对象名时,生成的getter、setter方法的t是小写,这是正确的方式。也就是说,加入要注入的对象名是tUserDAO,getter、setter方法分别为gettUserDAO和settUserDAO才正确。
实在想不通为何要这样设置。
上面提到的是一般的规则。既然提到一般,自然就有特殊情况。正是这特殊的情况,昨天浪费了大半天的时间,实在是悲催。问题是在spring中遇到的,struts2中是否相同,还有待实证。
特殊的情况是以t开头的对象。myeclipse在生成getter、setter方法时,自动采用上面的一般原则。web server启动时并不会提示错误,但使用到相关类时就会提示***是invalid property,并导致被注入的类无法instantiate。而eclipse要聪明一些,在遇到t开头的对象名时,生成的getter、setter方法的t是小写,这是正确的方式。也就是说,加入要注入的对象名是tUserDAO,getter、setter方法分别为gettUserDAO和settUserDAO才正确。
实在想不通为何要这样设置。
相关文章推荐
- no setter found for property(spring xml文件property标签中)错误的解决方法
- Struts2的getter()和setter()方法
- struts2的action接受参数:可以决定用不用写getter/setter方法(未经过测试)
- Spring 自动生成getter和setter方法 tostring方法
- setter方法 、getter方法、点语法、@property
- [图解教程]Eclipse不可不知的用法之一:自动生成Getter、Setter和构造方法
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- 实例变量可见度和方法(setter,getter 方法)
- java中封装类Feild和使用setter和getter方法访问封装的类Feild
- Spring bean属性注入(Setter 方法)
- Spring的两种常见的注入方式 构造方法注入以及setter方法注入
- 关于setter 和 getter方法的一些总结(初级)
- Spring@Autowired注解与省去get和set方法,对注解Autowired放在setter方法上的情况
- 解决spring mvc No mapping found for HTTP request with URI错误的三种方法
- 理解Struts2的Action中的setter方法工作原理
- Javascript魔法方法:__defineGetter__,__defineSetter__
- Spring加载配置文件的几种方法(出现错误的时候可以查看)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- 关于spring4和hibernate4整合,配置事务报“Cannot unwrap to requested type [javax.sql.DataSource]”错误的解决方法及心得
- struts2,hibernate4,spring3配置时有关问题汇总及解决方法