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);