The requested list key 'operateLevels' could not be resolved as a collection/arr

a4230787 2013-04-20 02:54:43
logsTop.jsp主要代码:
<s:action name="operateLevel" namespace="/"></s:action>
<s:select name="operateLevel" list="operateLevels" listKey="id" listValue="operateLevel" ></s:select>

struct.XML主要代码
<action name="operateLevel" class="com.struct.action.UI.OperateLevelUIAction" >
<result name="success" >/logsTop.jsp</result>
</action>

action主要代码:
public class OperateLevelUIAction extends ActionSupport{

private static final long serialVersionUID = 1L;
private List<OperateLevel> operateLevels ;
@Override
public String execute() throws Exception {
System.out.println("调用execute()");

List<OperateLevel> opLS = new ArrayList<OperateLevel>();
OperateLevel op1 = new OperateLevel("1","ERROR");
OperateLevel op2 = new OperateLevel("2","SUCCESS");
opLS.add(op1);
opLS.add(op2);
setOperateLevels(opLS);
System.out.print(this.operateLevels.get(0).id);
System.out.println(this.operateLevels.get(0).operateLevel);
System.out.print(this.operateLevels.get(1).id);
System.out.println(this.operateLevels.get(1).operateLevel);
return SUCCESS;

}
public void setOperateLevels(List<OperateLevel> operateLevels) {
this.operateLevels = operateLevels;
}
public List<OperateLevel> getOperateLevels() {
System.out.println("调用getOperateLevels()");
return this.operateLevels;
}

主要错误信息:
2013-4-20 14:28:51 org.apache.catalina.startup.Catalina start信息:
Server startup in 2499 ms
调用execute()
1 ERROR
2 SUCCESS

2013-4-20 14:28:55 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
tag 'select', field 'list', name 'operateLevel': The requested list key 'operateLevels' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]

问题:console窗口的提示信息可看出在jsp页面中的<s:action>标签确实执行了action中的execute()函数,并且List<OperateLevel>类型的 operateLevels 是有值的,但是为什么在<s:select>标签中,list属性无法获取operateLevels 值,提示错误:
tag 'select', field 'list', name 'operateLevel': The requested list key 'operateLevels' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location]
上面的测试结果可以发现,console窗口没有输出“调用getOperateLevels()”,也就是说,根本就没有调用getOperateLevels()函数,<s:select>获取action中的list不是通过getter函数吗?
这个问题该怎么解决,怎么样才能正确成功的动态获取action中的operateLevels到select下拉列表中?求高人
...全文
163 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧