谈谈struts2、spring的getter、setter方法及令人崩溃的错误

         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才正确。

          实在想不通为何要这样设置。

你可能感兴趣的:(谈谈struts2、spring的getter、setter方法及令人崩溃的错误)