java - Struts2 迭代器用不同类型填充下拉列表

标签 java jsp select struts2 iterator

我有一个 Map,其键是 String值可以是 String或另一个Map这取决于从 Java 文件返回的响应。

我需要使用 Struts2 迭代器在下拉列表中填充该响应。

我的要求是,如果值为String ,我需要使用<option>标签。如果值为 Map我需要去找<optgroup> .

所以,我需要检查该 Map 的“值”是否为 StringMap并相应地填充它。

最佳答案

看起来很简单:

<select name="foo">

    <s:iterator value="myMapOfMaps" var="currentEntry">
        <s:if test="%{#currentEntry.value instanceof java.util.Map}">

            <optgroup label="<s:property value='%{#currentEntry.key}'/>">
                <s:iterator value="#currentEntry.value" var="innerEntry">

                    <option value="<s:property value='%{#innerEntry.key}'/>">
                        <s:property value='%{#innerEntry.value}' />
                    </option>

                </s:iterator>
            </optgroup>

        </s:if>
        <s:else>

            <option value="<s:property value='%{#currentEntry.key}'/>">
                <s:property value='%{#currentEntry.value}' />
            </option>

        </s:else>
    </s:iterator>

</select>

关于java - Struts2 迭代器用不同类型填充下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36325627/

相关文章:

java - 无法从java中的日期中减去天数

java - 如何测试jsp属性类型

mysql - 根据重音查找重复字段

MySQL按月获取行数和分组到列标题

MySQL - 如果前缀为空,则将表设置为默认值

Java:无法访问的语句错误

java - JDO - 使用注释的 1-N 单向关系 - 列名称?

Java - 两个类,相同的名称,相同的包,但位于不同的文件夹中

java - JSP/Servlet 环境的最佳实践

Java 在尝试加载 CSS 文件时重定向到登录页面