从你的问题中没能看到你遇到的具体难点是什么。
1、在标签内字符串比较是可以通过==来比较的
2、关于你写的<s:if test="#daji == #str">,你似乎知道了用==来比较
3、关于你写的<%String str="大一";%><s:if test="#daji == #str">,由于str是通过java代码定义的局部变量,而你却通过 #str来获取这个值,这样能获取到吗?
4、如果要比较值,那么需要正确获取值,要正确获取值那么就需要知道这些值到底是存放在什么地方的,然后才能正确获取到,因此你的问题中对于这方面描述不全。
5、个人猜想:如果#daji能获取到正确的值,那么从你给的代码看,#str是无法获取到正确的值的,因str未存储到Stack Context中去,可以通过request.setAttribute("str",str);存储到request中,然后通过#request.str这个ognl表达式来获取。
问题已经通过其他办法解决了,不过我觉得你说的有道理,下次遇到的时候再用这个方法试一下。谢谢。
@草莓飞鱼儿: 怎么解决的?希望拿出来分享下,这样对以后遇到类似问题的朋友有些帮助啊!
@yevon: 不是实质性地解决这个问题,只是相当于绕路了,是在后台读取数据的时候先判断了再传过来的。
又遇到这个问题了,但是这次是action传过来的一个属性值和当前页面自定义的一个int型动态数据进行比较。 你给的方法确实是可行的。
<%int zhouji2=temp4.getZhouji();//其中temp4.getZhouji()是列表的其中一个属性的值 request.setAttribute("zhouji2",zhouji2);%>
<s:iterator value="kebiaoliebiao">
<s:if test="zhouji==#request.zhouji2">//zhouji是从action传回来的kebiaoliebiao里面的一个属性
<s:property value="kecheng"/>
</s:if>
</s:iterator>