標簽用法" /> 標簽,該標簽可以將一段文本內容或表達式的結果輸出到客戶端。" /> 国产精品欧美一区二区,精品无人区一区二区三区a
首頁技術文章正文

c:out標簽怎么使用?

更新時間:2020-12-15 來源:黑馬程序員 瀏覽量:

1577370495235_學IT就到黑馬程序員.gif

在JSP頁面中,最常見的操作就是向頁面輸出一段文本信息,為此,Core標簽庫提供了一個<c:out>標簽,該標簽可以將一段文本內容或表達式的結果輸出到客戶端。如果<c:out>標簽輸出的文本內容中包含了需要進行轉義的特殊字符,例如>、<、&、'、" 等,<c:out>標簽會默認對它們進行HTML編碼轉換后再輸出。<c:out>標簽有兩種語法格式,具體如下:

語法1:沒有標簽體的情況

<c:out value="value" [default="defaultValue"] 
[escapeXml="{true|false}"]/>

語法2:有標簽體的情況,在標簽體中指定輸出的默認值
<c:out value="value" [escapeXml="{true|false}"]>
    defaultValue 
</c:out>

在上述語法格式中,可以看到<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所示。

1608024799331_c_out1.png

圖1 c_out1.jsp

從圖1可以看出,瀏覽器窗口輸出了兩個默認值均為unknown,這是通過使用<c:out>標簽的default屬性以及標簽體的兩種方式來設置的默認值,這兩種方式實現(xiàn)的效果相同。由于在客戶端訪問c_out1.jsp頁面時,并沒有傳遞username參數(shù),所以表達式${param.username}的值為null,因此,<c:out>標簽就會輸出默認值。

如果不想讓<c:out>標簽輸出默認值,可以在客戶端訪問c_out1.jsp頁面時傳遞一個參數(shù),在瀏覽器地址欄中輸入http://localhost:8080/chapter08/c_out1.jsp?username=itcast,此時,瀏覽器窗口中顯示的結果如圖2所示。

1608024808665_c_out2.png

圖2 c_out1.jsp

從圖8-4可以看出,瀏覽器窗口中輸出了userName屬性的值為itcast,這是因為在客戶端訪問out.jsp頁面時傳遞了一個username參數(shù),該參數(shù)的值為itcast,因此,表達式${param.username}就會獲取到這個參數(shù)值,并將其輸出到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所示。

1608024822307_c_out3.png

圖3 c_out2.jsp

從圖3可以看到,瀏覽器窗口中顯示的是www.itcast.cn網(wǎng)站的信息,這是因為在<c:out>標簽中將escapeXml的屬性值設置為false,因此,<c:out>標簽不會對特殊字符進行HTML轉換,<meta>標簽便可以發(fā)揮作用,在訪問c_out2.jsp頁面時就會跳轉到www.itcast.cn網(wǎng)站。

如果想對頁面中輸出的特殊字符進行轉義,可以將escapeXml屬性的值設置為true,接下來將例3中<c:out>標簽的escapeXml屬性修改為true,再次訪問c_out2.jsp頁面,此時,瀏覽器窗口中顯示的結果如圖4所示。

1608024832310_c_out4.png

圖4 訪問結果

從圖4可以看出,將<c:out>標簽中escapeXml屬性的值設置為true后,在JSP頁面中輸入的<meta>標簽便會進行HTML編碼轉換,最終以字符串的形式輸出了。需要注意的是,如果在<c:out>標簽中不設置escapeXml屬性,則該屬性的默認值為true。


猜你喜歡:

JDK安裝教程:Jdk怎么安裝?

Java枚舉(Enum)類型原理詳細介紹

Java類加載機制詳解

Java高級軟件工程師培訓課程


分享到:
在線咨詢 我要報名
和我們在線交談!