更新时间: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编程,感兴趣的同学可以关注一下。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习