Strut2中JavaBean规范

困惑了两个多小时的问题,最后发现罪魁祸首竟然是一个[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 exception
javax.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”就好了,看来还是跟他的命名规范有关,有时间得好好研究一下它。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值