您的位置:首页 > 编程语言 > Java开发

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

2012-11-21 10:59 309 查看
4000

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]

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: