我有一个变量:
private ArrayList<LabelValueBean> circleNameIdList;
在我的
Action
类中,其中填充了值。我想在我的JSP下拉列表中显示标签,当选择一个标签时,
circleNameIdList
中该特定标签的对应值将传递给服务器。例如:如果选择了标签:
NewYork
,则其对应的id = 5
会发送到服务器。我该如何实现?
到目前为止,我在JSP中的操作如下:
<s:select list="#session.circleNameIdList" label="Select Circle:" name="circleNameIdList" id="circleNameIdList"></s:select>
但是,它显示不正确。
最佳答案
我看到您正在使用LableValueBean
填充并显示一个下拉列表。它是前一个Bean,最后用于显示对象列表。在Struts2中,不再需要这种辅助bean。您可以通过指定一个键字段来显示对象列表,该键字段将保留所选选项的唯一值以及将显示为选项文本的值。例如,如果您的对象
public class Circle {
private Long id;
//getter and setter here
private String name;
//getter and setter here
}
而且你在动作课上
private List<Circle> circleNameIdList;
//getter and setter here
/**
* Hold the selected value
*/
private Long circleId;
//getter and setter here
然后
<s:select id="circleNameIdListID" label="Circle:" name="circleId"
list="circleNameIdList" listKey="id" listValue="name" headerKey="-1" headerValue="Select Circle"/>
可以用来显示下拉菜单。