【问题标题】:jstl <select> to persist selectionjstl <select> 保持选择
【发布时间】:2013-03-17 10:32:36
【问题描述】:

我有一个 JSP 页面,通过迭代器打印 arraylist 内容

<s:iterator var="BeanList" value="BeanList">
    <option value='<s:property value="#BeanList.simpleID"/>'>
        <s:property value="#BeanList.simpleText" />
    </option>
</s:iterator>

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

任何帮助将不胜感激,

【问题讨论】:

    标签: struts2 jstl


    【解决方案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" />
    

    【讨论】:

      【解决方案2】:

      为此,您需要在 Action 类中声明一个带有选择框名称的变量,并为此放置 setter 和 getter。然后,当您提交表单时,名称匹配并自动填充到 Action 类中。

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

      这将通过在内部使用 params interceptor 来实现。

      【讨论】:

        猜你喜欢
        • 2011-09-16
        • 2018-11-15
        • 2020-11-11
        • 2012-02-18
        • 1970-01-01
        • 2012-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多