我正在尝试将地图元素绑定到来自 JSP 的选择值。select 的元素来自不同的地图,但两个地图中的 keySet 相同。
部分java代码:
private Map<String, List<String>> customCriteriaMap = new HashMap<>();
private Map<String, String> activeCustomCriteria = new HashMap<>();
例如:customCriteriaMap 有 1 个条目:
key: International, value: list contains: true, false
activeCriteriaMap 也有 1 个条目:
kry: International, value: true
现在在选择和提交表单上选择 false 后,我想在 activeCriteriaMap 中输入:
key: International, value: false
jsp代码:
<div class="grid_6 two">
<c:forEach items="${settingsForm.customCriteria}" var="actualCriteriaValues">
<c:set var="actualCriteriaKey" value="${actualCriteriaValues.key}" />
<c:set var="activeCriteria" value="${settingsForm.activeCustomCriteria[actualCriteriaKey]}"/>
<label>Criteria:</label>
<form:select path="activeCustomCriteria[${actualCriteriaKey}]" >
<c:forEach items="${actualCriteriaValues.value}" var="actualCriteriaValue">
<c:set var="optionLabel" value="${actualCriteriaValue}"/>
<c:choose>
<c:when test="${optionLabel eq 'N'}">
<c:set var="optionLabel" value="False"/>
</c:when>
<c:when test="${optionLabel eq 'Y'}">
<c:set var="optionLabel" value="True"/>
</c:when>
</c:choose>
<form:option value="${actualCriteriaValue}" label="${optionLabel}"/>
</c:forEach>
</form:select>
</c:forEach>
</div>
从 select 和 submit 中选择不同的值后,activeCustomCriteria 中的值不会改变。它总是相同的 - 默认值。
在此先感谢,马雷克。