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>