struts2 bean类首字母和第二个字母不能大写

来源:互联网 发布:智邦国际软件 编辑:程序博客网 时间:2024/05/18 23:54

struts2的bean类名首字母和第二个字母都不能大写 否则在set 、get时会报空指针错误(NullPointerException)

 

原因:

如后台类中有属性String sAdress这个属性。使用eclipse自动生成getsAdress()和setsAdress(String sAdress).注意:生成的方法中属性的首字母没有大写

页面中会用name="sAdress"传递参数。struts2拦截器会调用后台类中的setSAdress(String sAdress)方法。而后台中没有此方法。

所以会报错。

 

如果第二个字母大写的话,用eclipse生成get,set方法,就手动把方法名的第一个字母换成大写就好了。

 

示例如下:

action层:

 private List<PConstant> pConstantList;

 public List<PConstant> getpConstantList() {          // 方法名改为:getPConstantList
  return pConstantList;
 }

 public void setpConstantList(List<PConstant> pConstantList) {    // 方法名改为:setPConstantList
  this.pConstantList = pConstantList;
 }

jsp页面:

<s:select name="displayPosition" label="显示位置" headerKey="" headerValue="选择"
            list="pConstantList" listValue="value" listKey="code">
            </s:select>

 

错误如下:

2012-11-21 10:54:32 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
tag 'select', field 'list', name 'displayPosition': The requested list key 'pConstantList' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]