我有一个 Map,其键是 String
值可以是 String
或另一个Map
这取决于从 Java 文件返回的响应。
我需要使用 Struts2 迭代器在下拉列表中填充该响应。
我的要求是,如果值为String
,我需要使用<option>
标签。如果值为 Map
我需要去找<optgroup>
.
所以,我需要检查该 Map 的“值”是否为 String
或Map
并相应地填充它。
最佳答案
看起来很简单:
<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/