標簽用法" /> 標簽,該標簽可以將一段文本內容或表達式的結果輸出到客戶端。" />
更新時間:2020-12-15 來源:黑馬程序員 瀏覽量:
在JSP頁面中,最常見的操作就是向頁面輸出一段文本信息,為此,Core標簽庫提供了一個<c:out>標簽,該標簽可以將一段文本內容或表達式的結果輸出到客戶端。如果<c:out>標簽輸出的文本內容中包含了需要進行轉義的特殊字符,例如>、<、&、'、" 等,<c:out>標簽會默認對它們進行HTML編碼轉換后再輸出。<c:out>標簽有兩種語法格式,具體如下:
語法1:沒有標簽體的情況
<c:out value="value" [default="defaultValue"] [escapeXml="{true|false}"]/>
<c:out value="value" [escapeXml="{true|false}"]> defaultValue </c:out>
● value屬性用于指定輸出的文本內容;
● default屬性用于指定當value屬性為null時所輸出的默認值,該屬性是可選的(方括號中的屬性都是可選的);
● escapeXml屬性用于指定是否將>、<、&、'、" 等特殊字符進行HTML編碼轉換后再進行輸出,默認值為true。需要注意的是,只有當value屬性值為null時,<c:out>標簽才會輸出默認值,如果沒有指定默認值,則默認輸出空字符串。
為了使初學者更好的學習<c:out>標簽,接下來,通過具體的案例來學習<c:out>標簽的使用,如下所示:
1、使用標簽輸出默認值
使用<c:out>標簽輸出默認值有兩種方式,一是通過使用<c:out>標簽的default屬性輸出默認值,二是通過使用<c:out>標簽的標簽體輸出默認值。接下來通過一個案例來演示這兩種使用方式,如例1所示。
例1 c_out1.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <html> <head></head> <body> <%--第1個out標簽 --%> userName屬性的值為: <c:out value="${param.username}" default="unknown"/><br> <%--第2個out標簽 --%> userName屬性的值為: <c:out value="${param.username}"> unknown </c:out> </body> </html>
打開IE瀏覽器,在地址欄中輸入http://localhost:8080/chapter08/c_out1.jsp訪問c_out1.jsp頁面,此時,瀏覽器窗口中顯示的結果如圖1所示。
圖1 c_out1.jsp
從圖1可以看出,瀏覽器窗口輸出了兩個默認值均為unknown,這是通過使用<c:out>標簽的default屬性以及標簽體的兩種方式來設置的默認值,這兩種方式實現的效果相同。由于在客戶端訪問c_out1.jsp頁面時,并沒有傳遞username參數,所以表達式${param.username}的值為null,因此,<c:out>標簽就會輸出默認值。
如果不想讓<c:out>標簽輸出默認值,可以在客戶端訪問c_out1.jsp頁面時傳遞一個參數,在瀏覽器地址欄中輸入http://localhost:8080/chapter08/c_out1.jsp?username=itcast,此時,瀏覽器窗口中顯示的結果如圖2所示。
圖2 c_out1.jsp
從圖8-4可以看出,瀏覽器窗口中輸出了userName屬性的值為itcast,這是因為在客戶端訪問out.jsp頁面時傳遞了一個username參數,該參數的值為itcast,因此,表達式${param.username}就會獲取到這個參數值,并將其輸出到JSP頁面中。
2、使用標簽的escapeXml屬性對特殊字符進行轉義
<c:out>標簽有一個重要的屬性escapeXml,該屬性可以將特殊的字符進行HTML編碼轉換后再輸出,接下來通過一個案例來演示如何使用escapeXml屬性將特殊字符進行轉換,如例2所示。
例2 c_out2.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <html> <head></head> <body> <c:out value="${param.username }" escapeXml="false"> <meta http-equiv="refresh" content="0;url=http://www.itcast.cn" /> </c:out> </body> </html>
打開IE瀏覽器,在地址欄中輸入http://localhost:8080/chapter08/c_out2.jsp訪問c_out2.jsp頁面,此時,瀏覽器窗口中顯示的結果如圖3所示。
圖3 c_out2.jsp
從圖3可以看到,瀏覽器窗口中顯示的是www.itcast.cn網站的信息,這是因為在<c:out>標簽中將escapeXml的屬性值設置為false,因此,<c:out>標簽不會對特殊字符進行HTML轉換,<meta>標簽便可以發揮作用,在訪問c_out2.jsp頁面時就會跳轉到www.itcast.cn網站。
如果想對頁面中輸出的特殊字符進行轉義,可以將escapeXml屬性的值設置為true,接下來將例3中<c:out>標簽的escapeXml屬性修改為true,再次訪問c_out2.jsp頁面,此時,瀏覽器窗口中顯示的結果如圖4所示。
圖4 訪問結果
從圖4可以看出,將<c:out>標簽中escapeXml屬性的值設置為true后,在JSP頁面中輸入的<meta>標簽便會進行HTML編碼轉換,最終以字符串的形式輸出了。需要注意的是,如果在<c:out>標簽中不設置escapeXml屬性,則該屬性的默認值為true。
猜你喜歡: