关于struts2的checkboxlist、select等标签发生could not be resolved as a collection/array/map/enumeration/iterat

来源:互联网 发布:淘宝网小女孩衣服 编辑:程序博客网 时间:2024/06/06 04:11

 struts2的checkboxlist,select等标签发生could not be resolved as a collection/array/map/enumeration/iterat错误。控制台信息如下:

tag 'select', field 'list', id 'queryType', name 'queryType': The requested list key 'statisticsType' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
 at org.apache.struts2.components.Component.fieldError(Component.java:231)
 at org.apache.struts2.components.Component.findValue(Component.java:293)... ... ... ... ...

出现这种错误是,刚进入jsp页面时<s:select>标签的list的值为空。解决办法就是给它赋值。

(1)jsp页面

<s:select name="queryType"  list="statisticsType"  listValue="dictName" listKey="id.dictCode" />

(2)action

public class S9p69Action extends WTBaseAction {

 private S9p69Service s9p69Service;
 private List<SptPublicDictCode> statisticsType;
  private String queryType;

 public String enter() {

  statisticsType = s9p69Service.getPublicDictCodeList(Constant.STATISTICS_Type);
  return "feeCount";
 }

 public String queryInfo() {
    //具体逻辑,在jsp显示具体数据

   return "feeCount";
 }

在第一次进入jsp页面时,<action  method="enter">, 这时 statisticsType 取到值。在jsp页面<select>中显示出来。

 在jsp页面点击查看详情按钮,进入<action method="queryInfo">,这时 statisticsType 是去不到值的。就会报错。

解决办法是再queryInfo给statisticsType赋值。

具体代码:

 public String queryInfo() {

     statisticsType = s9p69Service.getPublicDictCodeList(Constant.STATISTICS_Type);

      //具体逻辑,在jsp显示具体数据

     return "feeCount";
 }

原创粉丝点击