struts2 s:if标签 如何判断字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2 s:if标签 如何判断字符串相关的知识,希望对你有一定的参考价值。

<s:if test="staffinfo.sex==1">男</s:if><s:else>女</s:else> 数据库是mysql,数据为bit型的时候可以判断
但是
<s:if test="staffinfo.grade== '高' ">高级</s:if><s:else>中级</s:else> grade在数据库中的类型为字符串,这时候,这句判断语句就判断不出来, 网上搜了很多也没有,难道是struts的bug
staffinfo是实体类, staffinfo.sex 其中sex是bit类型的,而grade是字符串类型,我的意思是,staffinfo.sex==1这句能判断出来,而staffinfo.grade=='高' 这句判断不出来,也就是判断不出字符串, 另外staffinfo.grade可以取到数据,而且打出来也是'高',但却 s:if 比较的话比较不出来

你们给的都不对。。。。

改为
<s:if test='#staffinfo.grade == "高"'></s:if><s:else>中级</s:else>
试试
记住里面是双引号,外面是单引号。
参考技术A 你的问题到底是什么?我给你个有关的例子吧

<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<h3>根据请求参数传入的成绩值,判断成绩等级</h3>

<s:set name="score" value="#parameters.score[0]"/>
您的成绩是:
<s:if test="#score < 60">
不及格
</s:if>
<s:elseif test="#score >= 60 && #score < 85">
及格
</s:elseif>
<s:else>
优秀
</s:else>
参考技术B test=" $staffinfo.grade=='高' "

关于struts2标签的 <s:if test="表达式">中,表达式问题

jsp中,在$(document).ready(function()后第一句定义了一个var flag=true; 在后面的显示部分 这个判断总是不对 是取值方式不对 还是页面定义的变量在struts2标签里不能取?
jsp中,在$(document).ready(function()后第一句定义了一个var flag=true; script结束后,到显示部分,通过<s:if test="flag==true">来完成某项判断,但是这个判断总是不对,flag的值不能成功读出, 是取值方式不对 还是页面定义的变量在struts2标签里不能取?

使用<s:set var="flag" value="true"/>试试吧
var flag = true;你是定义了一个js变量,跟struts2没关系的。
set标签是给struts2的上下文环境中增加一个临时变量flag,值是true

判断也改下
<s:if test=\'flag=="true"\'>因为true是一个字串必须带引号。
参考技术A js中定义的变量只能在js块里面用,出了那个函数就不能用了!

以上是关于struts2 s:if标签 如何判断字符串的主要内容,如果未能解决你的问题,请参考以下文章

Struts2标签

关于struts2标签的 <s:if test="表达式">中,表达式问题

二十 Struts2的标签库

struts2 用iterator标签做循环时,如何像java里的break一样跳出。或者用啥样的方法可以实现这样的功能

Struts2 FTL 标签和地图

Struts2 分割字符串标签s:generator