action中定义了myList
List myList = new ArrayList();
myList.add("a");
myList.add("b");
myList.add("c");
并且定义了public List getMyList() { return myList; }
在jsp页面中这样遍历
<s:iterator var="iter" value="myList" status="sts">
<s:if test="#iter=='b'">
b is found!!!
</s:if>
</s:iterator>
其中判断当前值为b的这句会导致报这样一个异常:
警告: Caught an exception while evaluating expression '#iter=='b'' against value stack
java.lang.NumberFormatException: For input string: "a"
另外把判断语句改成<s:if test="myList[#sts.index]=='b'">也不行,想请问下这是什么原因,应该怎样改?谢谢
------解决方案--------------------
可改为
<s:iterator var="iter" value="myList" status="sts">
${iter == "b" ? "b is found!!!" : ""}
</s:iterator>
------解决方案--------------------
楼主 ,我干肯定是因为 你获取的#iter 是 String类型的,然后跟char做比较就出问题了,,,
可以
<s:if test='#iter.equals("b")'>
b is found!!!
</s:if>
<s:if test='#iter=="b"'>
b is found!!!
</s:if>
都是可以的。。。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
2楼正解,顶一下