关于<c:if >判断 char 类型
2017-09-12 11:34
387 查看
Bug : 使用<c:if> 判断 char类型的数值时,等值判断无效。
经历:后台数据库保存某个状态的时候经常使用char类型去定义字段,然后规定某个代码为某个状态,如 ‘0’ 为 ‘有’,‘1’ 为 ‘无’ ,页面查询列表展示的时候经常要队该字段进行处理,需要显示‘有’或者‘无’,而不是‘0’或‘1’,常见的办法就是使用核心标签库中的<c:if>标签:
<c:if test="${deptInfo.sts eq '0' }" >有效</c:if>
<c:if test="${deptInfo.sts eq '1' }" >无效</c:if>
然而页面上状态字段却不显示。
原因:char 类型的数据进行比较时,需要先把它转换成ASCII码对应的十进制,再进行比较。
提示:char类型 0-9 对应 ASCII十进制 48-57 ; A-Z : 65 - 90 ; a-z : 97-122 (这些时比较常用的)
解决方案:
<c:if test="${deptInfo.sts eq '48' }" >有效</c:if>
<c:if test="${deptInfo.sts eq '49' }" >无效</c:if>
经历:后台数据库保存某个状态的时候经常使用char类型去定义字段,然后规定某个代码为某个状态,如 ‘0’ 为 ‘有’,‘1’ 为 ‘无’ ,页面查询列表展示的时候经常要队该字段进行处理,需要显示‘有’或者‘无’,而不是‘0’或‘1’,常见的办法就是使用核心标签库中的<c:if>标签:
<c:if test="${deptInfo.sts eq '0' }" >有效</c:if>
<c:if test="${deptInfo.sts eq '1' }" >无效</c:if>
然而页面上状态字段却不显示。
原因:char 类型的数据进行比较时,需要先把它转换成ASCII码对应的十进制,再进行比较。
提示:char类型 0-9 对应 ASCII十进制 48-57 ; A-Z : 65 - 90 ; a-z : 97-122 (这些时比较常用的)
解决方案:
<c:if test="${deptInfo.sts eq '48' }" >有效</c:if>
<c:if test="${deptInfo.sts eq '49' }" >无效</c:if>
相关文章推荐
- <s:if>判断时对判断对象的类型的影响
- 当mapper中的parametType为基本类型(如int,string等)时,报错的问题(mybatis使用了<if>判断)
- 关于<c:if>标签判断空值
- 判断浏览器类型 <!--[if lt IE 9]>(转)
- <c:if></c:if>条件判断
- if判断与比较操作符gt、lt、eq等的使用
- 条件注释判断浏览器<!--[if !IE]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- mybatis在<if>中传入一个简单类型参数的两种写法
- <c: if test="">判断无效
- 【JSP JSTL】<c:if>多个判断条件 + <c:foreach>满足条件跳出循环
- error: no matching function for call to 'std::basic_ifstream<char>::open(std::string&)
- Mybatis <if test> 判断数字时的问题
- 关于编译报错 error: cannot convert 'const std::__cxx11::basic_string<char>' to 'const char*' 的处理
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- C++ 中dynamic_cast<>的使用方法小结 -判断类型-rtti
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>
- 条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if lt IE 6]><!--[if gte IE 6]>