属性命名不遵守javaBean规范导致版本升级后获取不到值

如下所示:
struts2 Action中存在如下定义的iName属性,strust2由2.3.15.x升级到最新版本,eclipse使用4.4.2,后台iName属性获取不到前台传过来的值,为空。
public class XxxxAction {
private int iName;
private int age;


public int getIName() {
return iName;
}

public void setIName(int iName) {
this.iName = iName;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}


}


经查阅资料可知:
1. 对于常规属性 <propertyName> , 属性名称的第一个单词小写且之后的小写字母的个数大于1,第二个单词首字母大写 。对应的getter/setter方法名为:get /set + <PropertyName>(), 即属性名称的第一个单词的首字母改成大写, 前面再加上"get"或"set"前缀。
如:userName getUserName() setUserName()
2. 对于布尔类型 <propertyName> , 可以按常规属性的规则编写getter/setter方法外, getter方法可以使用 is + <PropertyName>()的形式来代替。

3. 对于非常规属性<pName>, 属性名称的第一个单词小写且字母个数等于1,第二个单词首字母大写 。
老的Eclipse版本(不知道哪个版本开始的) 对应的getter/setter方法名可以为:get/set + <PName>(), 即第一个单词的首字母为改为大写,前面再加上"get"或"set"前缀


总结:

[color=red][b]1. javaBean属性命名规范按照javaBean规范进行命名
2. 属性名第一个单词尽量避免使用一个字母:如eBook, eMail。
3. 随着jdk, eclipse, struts2,spring等软件版本的不断提高, 低版本的出现的问题可能在高版本中解决了, 低版本原来正常的代码可能在高版本环境下不再支持。[/b][/color]
[b]
碰到的坑好大,一直排查是框架升级后导致的值注入不进来。在此总结下经验教训。[/b]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值