动态地向spring mvc form添加一个属性:hidden control

时间:2012-10-14 14:55:23

标签: spring-mvc hidden-field

我想在表单上添加disabled属性:当我浏览模型中的对象列表时,动态隐藏标签。我有的代码(不起作用)有点像这样:

<c:forEach items="${myModel.myList}" var="obj">
        <div id="${obj.id}" onclick="selectObject(this);"><span>${obj.name}</span></div>
        <form:hidden path="myModel.selectedObj" />
</c:forEach>

我希望列表中obj的隐藏输入,即他的id等于selectedObj不被禁用,并且我希望禁用所有其他隐藏输入。这就是我的尝试:

<form:hidden path="myModel.selectedObj" <c:out value="${obj.id != myModel.selectedObj.id ? "disabled=\"disabled\"" : ""}"></c:out> />

正如我所说,这没有成功。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试使用这段代码:

<c:forEach items="${myModel.myList}" var="obj">
    <div id="${obj.id}" onclick="selectObject(this);"><span>${obj.name}</span></div>
    <c:if test="${obj.id eq myModel.selectedObj.id}">
        <form:hidden path="myModel.selectedObj" />
    </c:if>
    <c:if test="${obj.id ne myModel.selectedObj.id}">
         <form:hidden path="myModel.selectedObj" disabled="disabled" />
    </c:if>
</c:forEach>

或者您可以使用<c:choose /><c:when /><c:otherwise />代码:

<c:forEach items="${myModel.myList}" var="obj">
    <div id="${obj.id}" onclick="selectObject(this);"><span>${obj.name}</span></div>
    <c:choose>
        <c:when test="${obj.id eq myModel.selectedObj.id}">
            <form:hidden path="myModel.selectedObj" />
        </c:when>
        <c:otherwise>
            <form:hidden path="myModel.selectedObj" disabled="disabled" />
        </otherwise>
    </c:choose>
</c:foreach>