这是我在jsp中的代码:
<s:iterator value="sources" status="sourceStatus">
<s:property value="sourcesCheck"/>
<s:property value="#sourceStatus.index"/>
<s:if test="%{sourcesCheck.contains(#sourceStatus.index)}">
true
</s:if>
<s:else>
false
</s:else>
</s:iterator>
sourcesCheck是我从我的操作传递的数组,其中填充了值0,1,2,3,4,5。我的jsp上的结果显示了来自sourcesCheck的0,1,2,3,4,5,但是,测试总是错误的。为什么?我已尝试使用sourcesCheck的int和String值。如何包含工作?如果index不是String或int,它是什么?
答案 0 :(得分:5)
使用此代码:
<s:iterator value="sources" status="sourceStatus">
<s:property value="sourcesCheck"/>
<s:property value="#sourceStatus.index"/>
<s:if test="%{#sourceStatus.index in sourcesCheck}">
true
</s:if>
<s:else>
false
</s:else>
</s:iterator>
答案 1 :(得分:2)
Array没有任何方法可以实现。考虑java.util.List
。
例如:
List<Integer> sourcesCheck = Arrays.asList(0, 1, 2, 3, 4, 5);
按java.util.List.contains(Integer)
<s:if test="sourcesCheck.contains(#sourceStatus.index)">
</s:if>
答案 2 :(得分:0)
我认为必须如下
<s:if test="%{sourcesCheck.contains('#sourceStatus.index')}">
因为您要检查值而不是变量。