1. 程式人生 > >JSP開發之EL表示式擷取字串及其他字串操作標籤

JSP開發之EL表示式擷取字串及其他字串操作標籤

這幾天開發專案遇到個問題,需要對資訊在jsp展示頁面進行脫敏處理,由於剛接觸web開發,所以會有些疑惑,在這裡做個記錄:

<c:choose>
    <c:when test="${data.userInfo.realName eq ''}">
        <span class="span-fun dcolor">開通存管</span>
</c:when>
    <c:otherwise>
        <span class="span-fun dcolor">*${fn:substring(data.userInfo.realName
,1 , -1)}</span> </c:otherwise> </c:choose>

首先code邏輯裡採用了“if else”邏輯,注意EL表示式只有if標籤,沒有else標籤,因此,用

<c:choose>
<c:when>如果</c:when> 
<c:otherwise>否則</c:otherwise>
</c:choose>

替代。

字串擷取:

1.首先需要引入函式庫

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

2.如code所示,通過

${fn:substring(data.userInfo.realName,1 , -1)}

擷取

${data.userInfo.realName}

此EL表示式中的值的子串。

fn:substring(data.userInfo.realName,1 , -1)

表示式中的最後一個引數-1代表擷取到最後一個字元,若有明確擷取最後一個字元的標記值,填入即可。

下面附錄一下其他JSTL標籤的操作:

下面是JSTL中自帶的方法列表以及其描述


函式名 函式說明 使用舉例  

fn:contains 判斷字串是否包含另外一個字串 <c:if test="${fn:contains(name, searchString)}">  

fn:containsIgnoreCase 判斷字串是否包含另外一個字串(大小寫無關) <c:if test="${fn:containsIgnoreCase(name, searchString)}">  

fn:endsWith 判斷字串是否以另外字串結束 <c:if test="${fn:endsWith(filename, ".txt")}">  

fn:escapeXml 把一些字元轉成XML表示,例如<字元應該轉為&lt; ${fn:escapeXml(param:info)}  

fn:indexOf 子字串在母字串中出現的位置 ${fn:indexOf(name, "-")}  

fn:join 將陣列中的資料聯合成一個新字串,並使用指定字元格開 ${fn:join(array, ";")}  

fn:length 獲取字串的長度,或者陣列的大小 ${fn:length(shoppingCart.products)}  

fn:replace 替換字串中指定的字元 ${fn:replace(text, "-", "&#149;")}  

fn:split 把字串按照指定字元切分 ${fn:split(customerNames, ";")}  

fn:startsWith 判斷字串是否以某個子串開始 <c:if test="${fn:startsWith(product.id, "100-")}">  

fn:substring 獲取子串 ${fn:substring(zip, 6, -1)}  

fn:substringAfter 獲取從某個字元所在位置開始的子串

 ${fn:substringAfter(zip, "-")}  

fn:substringBefore 獲取從開始到某個字元所在位置的子串 ${fn:substringBefore(zip, "-")}  

fn:toLowerCase 轉為小寫 ${fn.toLowerCase(product.name)}  

fn:toUpperCase 轉為大寫字元 ${fn.UpperCase(product.name)}  

fn:trim 去除字串前後的空格 ${fn.trim(name)}