这是我在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和字符串值。contains是如何工作的?如果index不是String或int类型,它是什么?
使用以下代码:
<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>
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>
我想应该是这样的
<s:if test="%{sourcesCheck.contains('#sourceStatus.index')}">
因为你想检查一个值而不是一个变量