我有一个JSP页面,通过迭代器
打印arraylist内容<s:iterator var="BeanList" value="BeanList">
<option value='<s:property value="#BeanList.simpleID"/>'>
<s:property value="#BeanList.simpleText" />
</option>
</s:iterator>
每次用户选择一个选项时,表单都会提交操作处理。我希望能够获取clicked选项的值,并且在提交后重新加载页面时,选择下拉列表中仍存在相同的值。
任何帮助都会得到很大的帮助,
答案 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" />