我有一个使用枚举类型在 java 中声明的常量列表,它必须出现在 jsp 中。 Java 枚举声明:
public class ConstanteADMD {
public enum LIST_TYPE_AFFICHAGE {
QSDF("qsmldfkj"), POUR("azeproui");
private final String name;
@Override
public String toString() {
return name;
}
private LIST_TYPE_AFFICHAGE(String name) {
this.name = name;
}
public static List<String> getNames() {
List<String> list = new ArrayList<String>();
for (LIST_TYPE_AFFICHAGE test : LIST_TYPE_AFFICHAGE.values()) {
list.add(test.toString());
}
return list;
}
}
}
<select name="typeAffichage" id="typeAffichage">
<c:forEach var="type" items="${netcsss.outils.ConstanteADMD.LIST_TYPE_AFFICHAGE.names}">
<option value="${type}">${type}</option>
</c:forEach>
</select>
其中:
<select name="typeAffichage" id="typeAffichage">
<c:choose>
<c:when test="${catDecla ne null}">
<option
value="<%=catDecla.getCatDecla().getSTypeAffichage()%>"
selected="selected"><%=catDecla.getCatDecla().getSTypeAffichage()%></option>
</c:when>
</c:choose>
<%List<String> list = ConstanteADMD.LIST_TYPE_AFFICHAGE.getNames();
for(String test : list) {
%>
<option value="<%=test%>"><%=test%></option>
<%}%>
</select>
工作正常。 foreach 循环中的枚举类型是否有限制?
最佳答案
另一种选择是使用 <c:set/>
像这样的标签:
<c:set var="enumValues" value="<%=YourEnum.values()%>"/>
然后像这样迭代它:
<c:forEach items="${enumValues}" var="enumValue">
...
</c:forEach>
您的 IDE 应该会提示您导入 YourEnum
类。
关于java - 枚举上的 JSTL foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3978551/