Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms Spring MVC表单:选择所选值?_Forms_Spring Mvc - Fatal编程技术网

Forms Spring MVC表单:选择所选值?

Forms Spring MVC表单:选择所选值?,forms,spring-mvc,Forms,Spring Mvc,有没有办法通过Spring MVC在下拉列表中选择当前值?根据绑定值设置“已选择” 这是我解决这个问题的方法。它是巨大的,但它是有效的 genders:来自java模型的限定符 // model.addAttribute("genders", genders); 帐户:spring窗体的绑定modelattribute fmt:信息:将m翻译成Mees爱沙尼亚语 <form:select path="cfGender"> <c:forEach var="item" items

有没有办法通过Spring MVC在下拉列表中选择当前值?

根据绑定值设置“已选择”


这是我解决这个问题的方法。它是巨大的,但它是有效的

genders:来自java模型的限定符

// model.addAttribute("genders", genders);
帐户:spring窗体的绑定modelattribute

fmt:信息:将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>

在将表单绑定到模型之前,应该将希望选择的变量设置为jsp控制器中所需的值

    Form form = new Form();
    form.setFoo("bar");
    model.addAttribute("form", form);

在jsp中构建表单时,该表单变量将是选项列表中的默认选定值。

试试这个,它对我有用

<form:select path="size">
    <c:forEach items="${sizeList}" var="s" varStatus="status">
        <c:choose>
            <c:when test="${s eq 25}">
                <option value="${s}" selected="true">${s}</option>
            </c:when>
            <c:otherwise>
                <option value="${s}">${s}</option>
            </c:otherwise>
        </c:choose> 
    </c:forEach>
</form:select>
不需要使用,如果其他

例如:

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);

我也有类似的问题,经过几天的努力,我能够通过在我的模型类中实现hash和equal方法来解决这个问题。问题在于spring无法确定下拉列表中的某个项在何处等于模型中的某个值。但是在模型对象中实现了hash和equals之后,一切都很好

@Entity
@Table(name = "BANKS")
public class Bank implements java.io.Serializable {

/**
 * 
 */
private static final long serialVersionUID = -8928809572705999915L;

private Long id;

private String bankCode;

private String bankName;

...........

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result
            + ((bankCode == null) ? 0 : bankCode.hashCode());
    result = prime * result
            + ((bankName == null) ? 0 : bankName.hashCode());
    result = prime * result + ((id == null) ? 0 : id.hashCode());
    return result;
}

@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    Bank other = (Bank) obj;
    if (bankCode == null) {
        if (other.bankCode != null)
            return false;
    } else if (!bankCode.equals(other.bankCode))
        return false;
    if (bankName == null) {
        if (other.bankName != null)
            return false;
    } else if (!bankName.equals(other.bankName))
        return false;
    if (id == null) {
        if (other.id != null)
            return false;
    } else if (!id.equals(other.id))
        return false;
    return true;
}
在我看来,我有这样的想法

    <form:select path="bank" cssClass="form-control"    required="true">
        <form:option value="">--Select--</form:option>
        <form:options items="${banks}" itemLabel="bankName"
                                        itemValue="bankCode" />
    </form:select>

这个问题还不清楚。什么是“当前值”。你想在哪里选择它?谢谢-我一整天都在想这个问题!顺便说一句,这种方法的一个优点是你可以显示多个选项。我认为当我们在地图上有两种类型的选项时,这会起作用。但这不适用于对象列表,例如列表。
    <form:select path="bank" cssClass="form-control"    required="true">
        <form:option value="">--Select--</form:option>
        <form:options items="${banks}" itemLabel="bankName"
                                        itemValue="bankCode" />
    </form:select>