struts2中的列表在使用modeldriven接口时选择cant resoved

您好我在我的struts2应用程序中使用接口modeldriven。 我在渲染页面时遇到问题,因为我总是收到错误:

19 nov. 2013 11:23:12 org.apache.catalina.core.StandardWrapperValve invoke GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception tag 'select', field 'list': The requested list key 'listeItems' 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:240) at org.apache.struts2.components.Component.findValue(Component.java:333) at org.apache.struts2.components.ListUIBean.evaluateExtraParams(ListUIBean.java:80) 

我不知道错误在哪里,所以我给社区打电话。

struts.xml

                                11204928              errorAction   sessionInvalid  blank          /omb displayResult   /error displayError     

MyAction.java

 package com.omb.actions; public class MyAction extends ActionSupport implements ModelDriven{ private MyModel myModel = new MyModel(); public MyModel getModel() { return myModel; } public String execute() throws Exception { myModel.add(new Item("A", "Item A")); myModel.add(new Item("B", "Item B")); return SUCCESS; } public String doAction() { // do something return "SUCCESS"; } public MyModel getMyModel() { return this.myModel; } public void setMyModel(MyModel myModel) { this.myModel = myModel; } } 

MyModel.java

 package com.omb.modele; import java.util.ArrayList; import java.util.List; import com.omb.item.Item; public class MyModel { private String idItem; private List listeItems = new ArrayList(); public String getIdItem() { return this.idItem; } public void setIdItem(String idItem) { this.idItem = idItem; } public List getListeItems() { return this.listeItems; } public void setListeItems(List listeItems) { this.listeItems = listeItems; } } 

Item.java

 package com.omb.item; import java.io.Serializable; public class Item implements Serializable { private static final long serialVersionUID = 1L; private String id; private String label; public Item() { super(); } public Item(String id, String label) { this.id = id; this.label = label; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } } 

JSP文件:

  

删除method="{1}"因为您不使用通配符映射,并且您的操作没有execute以外的方法,只有此方法初始化列表。 如果列表未初始化,则会发生上述错误。 如果您没有显示其他方法,则应该为该操作实现Preparable并移动初始化列表的代码。

 public class MyAction extends ActionSupport implements ModelDriven, Preparable { public void prepare() { myModel = new MyModel(); myModel.add(new Item("A", "Item A")); myModel.add(new Item("B", "Item B")); } ... }