0

我正在尝试将地图元素绑定到来自 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 中的值不会改变。它总是相同的 - 默认值。

在此先感谢,马雷克。

4

1 回答 1

0

好的,

这种代码和平工作得很好,问题出在一个拦截器上。仍然可以将此代码视为示例如何使用一张地图填充选择和另一张地图进行绑定:)

于 2012-10-11T08:07:34.673 回答