Spring MVC表单:选择选中的值?

zax*_*axx 14 forms spring-mvc

有没有办法在Spring MVC的下拉列表中选择当前值 <form:options>

Tim*_*ess 6

不需要使用if else

例:

Student student = new Student();
student.gender = "F";
model.addObject("student", student);

Map<String, String> genders = new LinkedHashMap<String, String>();
genders.put("M", "Male");
genders.put("F", "Female");
model.addObject("genders", genders);
Run Code Online (Sandbox Code Playgroud)

JSP代码

modelAttribute&commandName是可以互换的

<c:url value="/Student/Edit" var="editstudenturl"/>
<form:form method="post" action="${editstudenturl}" modelAttribute="student" class="form-horizontal">
  <form:select path="gender" class="form-control" id="gender" >
    <form:options items="${genders}" />
  </form:select>
</form:form>
Run Code Online (Sandbox Code Playgroud)


Kri*_*Aun 5

这是我对这个问题的解决方法.它很大,但它的工作原理

性别:来自java模型的限定符

// model.addAttribute("genders", genders);
Run Code Online (Sandbox Code Playgroud)

account:弹簧形式的绑定modelattribute

fmt:message:将m翻译为"Mees"(爱沙尼亚语)

<form:select path="cfGender">
<c:forEach var="item" items="${genders}">
    <c:choose>
        <c:when test="${account.getCfGender().getCfGender()==item.getCfGender()}">
            <form:option selected="true" value="${item.getCfGender()}">
                <fmt:message key="cf_gender.${item.getCfGender()}" />
            </form:option>
        </c:when>

        <c:otherwise>
            <form:option value="${item.getCfGender()}">
                <fmt:message key="cf_gender.${item.getCfGender()}" />
            </form:option>
        </c:otherwise>
    </c:choose>
</c:forEach>
</form:select>
Run Code Online (Sandbox Code Playgroud)