天天看點

關于在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>僅自己&nbsp;&nbsp;
 5              <input type="radio" id="dataScope1" name="datascope" value="部門内">部門内&nbsp;&nbsp;
 6              <input type="radio" id="dataScope2" name="" value="指定部門" data-toggle="modal" data-target="#myModal"
 7                    onclick="showdept();">指定部門&nbsp;&nbsp;    
 8       </c:when>
 9       <c:when test="${roles.dataScope=='部門内'}">
10               <input type="radio" id="dataScope0" name="datascope" value="僅自己" checked>僅自己&nbsp;&nbsp;
11               <input type="radio" id="dataScope1" name="datascope" value="部門内" checked>部門内&nbsp;&nbsp;    
12               <input type="radio" id="dataScope2" name="" value="指定部門" data-toggle="modal" data-target="#myModal"
13                      onclick="showdept();">指定部門&nbsp;&nbsp;
14        </c:when>
15        <c:otherwise>
16                <input type="radio" id="dataScope0" name="datascope" value="僅自己">僅自己&nbsp;&nbsp;
17                <input type="radio" id="dataScope1" name="datascope" value="部門内">部門内&nbsp;&nbsp; 
18                <input type="radio" id="dataScope2" name="" value="指定部門" checked data-toggle="modal" data-target="#myModal"
19                       onclick="showdept();">指定部門&nbsp;&nbsp;
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="僅自己">僅自己&nbsp;&nbsp;
2 <input type="radio" id="dataScope1" name="datascope" value="部門内">部門内&nbsp;&nbsp; 
3 <input type="radio" id="dataScope2" name="" value="指定部門" data-toggle="modal" data-target="#myModal"
4         onclick="showdept();">指定部門&nbsp;&nbsp;      
//JS中取消單選按鈕選中狀态的方法
1 $("#dataScope0").prop("checked",false);
2 $("#dataScope1").prop("checked",false);      

繼續閱讀