我有一个Struts 2 jsp,代码如下......
<s:iterator value="categories" id="category" status="iteratorStatus">
<s:if test='#category == "M" '> snip </s:if>
Run Code Online (Sandbox Code Playgroud)
问题是类别背后的java代码是..
private static final CategoryEnum[] PRIVATE_VALUES = {A,B,C,M };
public static final List<CategoryEnum> VALUES = Collections.unmodifiableList(Arrays.asList(PRIVATE_VALUES));
public List<CategoryEnum> getCategories() {
return CategoryEnum.VALUES;
}
Run Code Online (Sandbox Code Playgroud)
所以IF语句不起作用,它永远不会评估为真.我试过逃避字符等,但没有成功.
我更愿意使用'category'值回调Action类,并决定该怎么做.例如
<s:if test='renderCategory(#category)> snip </s:if>
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将#category传回给行动.
所以任何人都可以帮助我解决如何传递值或使Struts IF标记与枚举一起工作.
我已经读过这个:这里帮助不大,但无论如何我都会参考iy:
Struts 2:为什么'if'标签不会评估一个char字符串
有人可以帮我吗?
杰夫波特
看来我没有查看CategoryEnum类(只附加.class而不是.java).
CategoryEnum类虽然它是枚举,但值是它们自己的类,因此在它上面调用toString()将允许我比较每个类中的值.
<s:iterator value="categories" id="category" status="iteratorStatus">
<s:if test='#category.toString() == "M" '> snip </s:if>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6439 次 |
| 最近记录: |