Spring MVC在select标签中保留选定的值

时间:2014-06-03 09:58:17

标签: spring jsp select

我的jsp中有2个选择标签:

第一个:

<select name="performers">
    <option value="all" label="All performers">All performers</option>
    <c:forEach var="list" items="${list}">
        <option value="${list}">${list}</option>
    </c:forEach>
 </select>

第二个:

<select name="period">
    <option value="0"> </option>
    <option value="1">Last Qtr</option>
    <option value="2">Last Month</option>
    <option value="3">Last Calendar Year</option>
    <option value="4">Current Year to Date</option>
    <option value="5">Current Qtr to Date</option>
    <option value="6">Current Month do Date</option>
</select>

如何在页面重新加载(post方法)后从控制器保留此组合框的选定值?

1 个答案:

答案 0 :(得分:3)

微米。 Deinum指出正确。使用表单模型和弹簧形式标签。 假设您的表单包含以下字段:

    public class YourForm{
        //Assuming thedatatype of performersList as String
        List<String> performersList;
        String performers;
        ...
        //setters and getters
    }

在委托给jsp的控制器方法中:

    ...
    YourForm form = new YourForm();
    //set your performersList in form 
    //set  performers in form - the selected value to be displayed in view
    model.addAttribute("yourForm", form):
    ...

现在在jsp中访问它:

    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
    <body>
    <form:form id="yourForm" modelAttribute="yourForm" method="post">
    <tr>
        <td >
            <form:select id="performers" path="performers" title='Select Performers'>
                <option value="">All performers</option>
                <form:options items="${performersList}"/>
            </form:select>
        </td>
    </tr>
    </body>

由于表演者已经设置在控制器中,你会看到在jsp中自动选择表演者。 同样,您可以为其他下拉选项执行此操作。

希望这有帮助。