Strut2中JavaBean规范

xiaoxiao2024-04-21  32

困惑了两个多小时的问题,最后发现罪魁祸首竟然是一个[b]大小写[/b]问题: Items类: private int mId;public int getMId() { return mId;}public void setMId(int mId) { this.mId = mId;} action类: public Items items;public Items getItems() { return items;}public void setItems(Items items) { this.items = items;} [b]注意:此处get方法最好写上,否则可能会出现丢值的问题。[/b] 页面用EL表达式取值: ${items.mId } 控制台错误信息: 严重: Servlet.service() for servlet jsp threw exceptionjavax.el.PropertyNotFoundException: Property 'mId' not found on type org.zjkh.homepage.dao.pojo.Items at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193) at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170) at javax.el.BeanELResolver.property(BeanELResolver.java:279) at javax.el.BeanELResolver.getValue(BeanELResolver.java:60) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53) 网上也有不少网友出现了类似问题,不过说法各种各样。我也尝试了,都失败了。 我的解决办法: 将“mId”改成“mid”,当然get、set方法也要记得改哦,好了,问题就这样解决了! 实在想不通,记得以前这样是可以的,难道JavaBean的规范要求更严格了,不允许开头有俩大写字母?就在我解决这个问题的同时,同事也出现了类似问题,注入DAO时spring配置文件编译时老是提示错误:“not property set method ...”,也折腾了好半天,所有可能的隐患都检查了,都没成功。最终把他的DAO类名改了一下“MMxxxDAO”改成“MxxxDAO”就好了,看来还是跟他的命名规范有关,有时间得好好研究一下它。
转载请注明原文地址: https://www.6miu.com/read-5015138.html

最新回复(0)