首页 新闻 会员 周边

在线等! s:if标签判断字符串相等

0
悬赏园豆:20 [已解决问题] 解决于 2013-04-02 19:26
<%String str="大一";%>
<s:if test="#daji == #str">
<s:property value="daji"/>
</s:if>

从后台获取了一个list,其中有一个属性是daji,
jsp页面有一个字符串str,
当daji和str相同时,输出daji。但是判断语句要怎么写才能判断成功?
草莓飞鱼儿的主页 草莓飞鱼儿 | 初学一级 | 园豆:140
提问于:2013-04-01 21:28
< >
分享
最佳答案
1

从你的问题中没能看到你遇到的具体难点是什么。

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表达式来获取。

收获园豆:20
yevon | 菜鸟二级 |园豆:306 | 2013-04-02 19:17

问题已经通过其他办法解决了,不过我觉得你说的有道理,下次遇到的时候再用这个方法试一下。谢谢。

草莓飞鱼儿 | 园豆:140 (初学一级) | 2013-04-02 19:27

@草莓飞鱼儿: 怎么解决的?希望拿出来分享下,这样对以后遇到类似问题的朋友有些帮助啊!

yevon | 园豆:306 (菜鸟二级) | 2013-04-02 20:11

@yevon: 不是实质性地解决这个问题,只是相当于绕路了,是在后台读取数据的时候先判断了再传过来的。

草莓飞鱼儿 | 园豆:140 (初学一级) | 2013-04-04 17:45

又遇到这个问题了,但是这次是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>

草莓飞鱼儿 | 园豆:140 (初学一级) | 2013-04-30 01:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册