正确使用 LabelValueBean

2022-01-16 00:00:00 jakarta-ee java jsp struts2 ognl

我有一个变量:

private ArrayList<LabelValueBean> circleNameIdList;

在我的 Action 类中填充它的值.

inside my Action class where it's value get populated.

I want to display the label in my drop-down in JSP and when one label is selected, the corresponding value to that particular label in circleNameIdList to be passed to the server.例如:如果标签:NewYork 被选中,那么它对应的id = 5,被发送到服务器.

I want to display the label in my drop-down in JSP and when one label is selected, the corresponding value to that particular label in circleNameIdList to be passed to the server. Eg.: If label: NewYork is selected then it's corresponding id = 5, is sent to the server.

我怎样才能做到这一点?

How can I achieve this?

到目前为止,我在 JSP 中都是这样做的:

Up till now I was doing like this in JSP:

<s:select list="#session.circleNameIdList" label="Select Circle:" name="circleNameIdList" id="circleNameIdList"></s:select>

但是显示不正确.

推荐答案

我看到您正在使用 LableValueBean 来填充和显示下拉列表.它是一个以前的 bean,最后用于显示对象列表.在 Struts2 中,您不再需要这样的辅助 bean.您可以通过指定一个键字段来显示对象列表,该键字段将包含所选选项的唯一值以及要显示为选项文本的值.例如,如果您的对象

I see you are using a LableValueBean to populate and show a dropdown. It's a former bean used at last to display a list of objects. In Struts2 you're no longer required such a helper bean. You can display a list of objects by specifying a key field that would hold a unique value of the selected option and a value to be shown as the option text. For example if your object

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"/>

可用于显示下拉菜单.

相关文章