EL表达式判断字符串 - 极悦
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 EL表达式判断字符串

EL表达式判断字符串

更新时间:2021-08-11 12:19:24 来源:极悦 浏览1124次

需求背景

在做前台数据展示处理时,使用到了el表达式来判断,正常使用eq或==,无效,代码如下

<div>
           <c:if test="${myparam.isUse eq '1'}">
               <input type="radio" name="isUse" class="required myinput"  value="1"  checked />
              <p>启用</p>
              <input type="radio"  name="isUse"   class="required myinput"  value="0"  />
              <p>禁用</p>
           </c:if>
              <c:if test="${myparam.isUse eq '0'}">
              <input type="radio" name="isUse" class="required myinput"  value="1"   />
               <p>启用</p>
               <input type="radio"  name="isUse"   class="required myinput"  value="0"  checked/>
               <p>禁用</p>
           </c:if>
</div>

目的就是根据后台的值,来默认进行回显(此处代码,可优化,后面会附上);这里的isUse是明确为1且为字符,但是没有执行代码。

问题解决

前后台都检查了一遍,并没有语法问题,与正常使用el表达式的唯一区别就是,这里的变量是一个字符,而非字符串

/**
     * 群组状态是否启用:0表示禁用,1表示启用
     * @return
     */
    private char isUse;
    public char getIsUse() {
        return isUse;
    }
    public void setIsUse(char isUse) {
        this.isUse = isUse;
    }

也查了相关资料,找到以下解决方法。

方法一

在后台传值时,将字符转化为字符串。前台不变,显示正常

param.put("isUse", tbBizType.getIsUse()+"");//直接加上空字符串即可

方法二

在前台进行处理,使用charAt(0)方法获取字符,进行比较,代码如下

<div>
       <input type="radio" name="isUse" class="required myinput"  value="1"
           ${myparam.isUse=='1'.charAt(0)?'checked':''}>
       <p>启用</p>
       <input type="radio"  name="isUse"   class="required myinput"  value="0"
           ${myparam.isUse=='0'.charAt(0)?'checked':''}>
       <p>禁用</p>
<div>

方式三

将字符转化为整数,因为这里我使用的字符值只是0或者1,所以在前端可以只是使用0或者1的编码值进行比较

0的编码对应的是49,1的编码对应的是50,代码如下:

<div>
        <input type="radio" name="isUse" class="required myinput"  value="1"
            ${myparam.isUse==49?'checked':''}>
        <p>启用</p>
        <input type="radio"  name="isUse"   class="required myinput"  value="0"
            ${myparam.isUse==48?'checked':''}>
        <p>禁用</p>
<div>

方式四

使用枚举,将可能的值定义为一个枚举,并使用它声明变量,在进行el表达式操作的时候,可以直接调用进行比较

//定义枚举
		public enum OrderStatus {
		     N, X, Y, Z;
		}
//使用枚举类型声明
		private OrderStatus isUse; //get和set方法
				<div>
                        <input type="radio" name="isUse" class="required myinput"  value="1"
                            ${myparam.isUse=='1'?'checked':''}>
                        <p>启用</p>
                        <input type="radio"  name="isUse"   class="required myinput"  value="0"
                            ${myparam.isUse=='0'?'checked':''}>
                        <p>禁用</p>
                  <div>

以上就是极悦小编介绍的"EL表达式判断字符串",希望对大家有帮助,想了解更多可查看EL表达式。极悦在线学习教程,针对没有任何Java基础的读者学习,让你从入门到精通,主要介绍了一些Java基础的核心知识,让同学们更好更方便的学习和了解Java编程,感兴趣的同学可以关注一下。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>