关于在JSP页面用c标签写if语句
2017年5月28日,晴,心情还不错。
昨晚和同事撸串,回来后继续威士忌走起,喝到凌晨2点多,聊的甚欢。彼此分享了很多自己成长过程中的故事,相互之间有了进一步的了解,友情又进了一步。在以后的时光里,愿珍惜,共勉,我的朋友们!
昨下午同事胡帮我测了一下自己负责的模块,发现了一些小问题,马上着手修BUG,很快就OK。在修BUG过程中发现了一些很多人会遇到的问题,于是趁端午节之际,写一篇博客供大家参考借鉴!
1.在JSP页面中写判断语句的注意问题
//方法1:使用<c:if>
2 <c:if test=""></c:if >
//方法2:使用<c:choose>
2 <c:choose>
3 <c:when test="${roles.dataScope eq '仅自己'}"> 4 <input type="radio" id="dataScope0" name="datascope" value="仅自己" checked>仅自己 5 <input type="radio" id="dataScope1" name="datascope" value="部门内">部门内 6 <input type="radio" id="dataScope2" name="" value="指定部门" data-toggle="modal" data-target="#myModal" 7 onclick="showdept();">指定部门 8 </c:when> 9 <c:when test="${roles.dataScope=='部门内'}"> 10 <input type="radio" id="dataScope0" name="datascope" value="仅自己" checked>仅自己 11 <input type="radio" id="dataScope1" name="datascope" value="部门内" checked>部门内 12 <input type="radio" id="dataScope2" name="" value="指定部门" data-toggle="modal" data-target="#myModal" 13 onclick="showdept();">指定部门 14 </c:when> 15 <c:otherwise> 16 <input type="radio" id="dataScope0" name="datascope" value="仅自己">仅自己 17 <input type="radio" id="dataScope1" name="datascope" value="部门内">部门内 18 <input type="radio" id="dataScope2" name="" value="指定部门" checked data-toggle="modal" data-target="#myModal" 19 onclick="showdept();">指定部门 20 <span id="deptname" style="color:blue;font-weight: bold;">${roles.dataScope}</span> 21 </c:otherwise>
</c:choose>
注意:test="${roles.dataScope eq '仅自己'}",判断条件必须写在{}之内。
2.Mybatis操作Mysql数据库的配置文件之模糊查询
1 <!--按角色名查询--> 2 <select id="findList" resultType="Role" resultMap="RoleMap"> 3 select * from sys_role 4 <where> 5 `status` = 1 6 <if test="roleName != null and roleName != ''"> 7 and `role_name` LIKE CONCAT(CONCAT('%', #{roleName}), '%') 8 </if> 9 </where> 10 </select>
注意:LIKE CONCAT(CONCAT('%', #{roleName}), '%'),"%"代表查询字段的前面和后面可以有0个或多个其他字符。如果是"-",则表示可以有1个字符。
3.当单击事件时,前面的单选按钮取消选中状态
我做的模块是角色管理模块,在增加页面有一项是数据权限。当用户点击对应按钮把相应的值存入数据表中,但是有一个问题就是如果三个"input"的name都一样的话,当点击下面的指定部门按钮选择相应部门后,存入表中的数据不是对应的部门,而是对应的value值,所以在指定部门单选按钮"input"中我么有给name值。这样的话又会出现一个新的问题,当前面两个单选按钮选中其中一个后,再点击后面的指定按钮,前面的选中状态不会取消,并且存入表中的值也是前面对应单选按钮的值,这与实际情况不符合,所以在选中指定部门后前面的单选按钮的选中状态应该取消。
JSP页面单选按钮代码:
1 <input type="radio" id="dataScope0" name="datascope" value="仅自己">仅自己 2 <input type="radio" id="dataScope1" name="datascope" value="部门内">部门内 3 <input type="radio" id="dataScope2" name="" value="指定部门" data-toggle="modal" data-target="#myModal" 4 onclick="showdept();">指定部门
//JS中取消单选按钮选中状态的方法
1 $("#dataScope0").prop("checked",false); 2 $("#dataScope1").prop("checked",false);