jstl <select>保持选择</select>

时间:2013-03-17 10:32:36

标签: struts2 jstl

我有一个JSP页面,通过迭代器

打印arraylist内容
<s:iterator var="BeanList" value="BeanList">
    <option value='<s:property value="#BeanList.simpleID"/>'>
        <s:property value="#BeanList.simpleText" />
    </option>
</s:iterator>

每次用户选择一个选项时,表单都会提交操作处理。我希望能够获取clicked选项的值,并且在提交后重新加载页面时,选择下拉列表中仍存在相同的值。

任何帮助都会得到很大的帮助,

2 个答案:

答案 0 :(得分:1)

为此,您需要在Action类中使用选择框名称声明变量,并为此设置setter和getter。然后,当您提交表单时,名称匹配,并自动填充在Action类中。

将数据集value检索到同一个变量时,然后使用名称自动填充。

这将在内部使用params interceptor

答案 1 :(得分:1)

您正在使用HTML Select代码,其值已填入Struts2 Property代码。

不涉及JSTL。

但请相信我,你可以直接使用Struts2 Select标签来避免这种情况。

官方文件:http://struts.apache.org/release/2.3.x/docs/select.html

在行动中

@Getter @Setter List<String> allCities; 
@Getter @Setter String selectedCity; 

在JSP中:

<s:select list="allCities" 
          name="selectedCity" />

比手动迭代更快更干净:)


最终您可以添加可选的标头值:

<s:select list="allCities" 
          name="selectedCity" 
          headerKey="-1" 
          headerValue="Select a City" />