I am developing a simple struts application. In my JSP I have a dropdown list box (using s:select
tag). I need to fill the values with a arraylist values in the action class. How can I do that? what changes needed in the structs.xml
file for complete this?
JSP:
<s:select name="department" label="" list="departmentlist" headerKey="-1" headerValue="Select Department">
Action class:
private List<String> departmentlist = new ArrayList<String>();
public String xyz()
{
departmentlist.add("aaa");
departmentlist.add("bbb");
departmentlist.add("ccc");
departmentlist.add("ddd");
return "success";
}
The error
"The requested list key 'departmentlist' could not be resolved as a collection/array/map/enumeration/iterator type. Example: people or people.{name} - [unknown location] "
means that the select
tag is not able to resolve departmentlist
as a collection. It is an OGNL expression which is trying to find the departmentlist
in the value stack and if it not found or contains a null
reference the select
tag will complain. When you render the select
tag make sure the list is in the value stack and is initialized. See the example here.
Try to add get and set method for our field departmentlist,in your class Exple : in your class controller put this method for your field departmentlist :
public List<String> getDepartmentlist(){
return this.departmentlist();
}
public void setDepartmentlist(List<String> departmentlist){
return this.departmentlist = departmentlist;
}
来源:https://stackoverflow.com/questions/22760673/struts-select-tag-with-values-of-a-array-list