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

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";
}

你可能感兴趣的:(enumeration)