struts2 2.1升级到2.3需要注意的一个小细节

在给公司的比较老的项目进行Struts2 2.1升级到2.3的时候遇到了一些小问题写出来以便以后查阅
在struts2中从前台获取表单数据可以使用action类的属性获取,但是在2.1和2.3 这两个版本中有一些细微的差异,对于简单的单词属性来说没有问题如name,但是对于稍微复杂一点的单词属性就会有一席差异,比如nName,在设置getter,setter方法的时候就需要注意一下,getter方法没有区别,只是setter方法需要注意,2.1版本中可以使用public String setNName(String nName){…},这样么有问题,可以获取到数据,但是在2.3版本中这样写就获取到空的数据,所以需要写成public String setnName(String nName){…},也就是说set后面的单词需要与属性完全一致,下面是验证的例子,(容器使用的was8.5)
下面是2.1和2.3使用简单单词的情况(2.1版本的jar包是从别的项目中拷贝过来的懒得一个个去挑了)
2.1和2.3版本的代码完全一致
struts.xml文件的配置情况,
这里写图片描述

index.jsp的代码
这里写图片描述

Action类的代码
这里写图片描述

User类的代码
这里写图片描述

查看结果
2.1版本
这里写图片描述

2.3版本
这里写图片描述

下面是使用复杂单词的代码2.1和2.3完全一样就不一一展示了
index.jsp
这里写图片描述

Action代码
这里写图片描述

User代码
这里写图片描述

结果展示
2.1版本
这里写图片描述

2.3版本
这里写图片描述

我们看到2.3 版本中的控台输出是空的,也就是说没有从前台获取到数据
下面我们来做一下改动
只需要改动User的nName的setter方法即将setNName 改为setnName(注意大小写)
这里写图片描述

下面再让我们看一下结果
这里写图片描述

可以看到能够获取到数据了
当然用比较新的eclipse自动生成的getter,setter都是没有问题的
这问题主要还是出现在比较古老的项目从Struts2.1升级到2.3版本过程中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值