標(biāo)簽用法" /> 標(biāo)簽,該標(biāo)簽可以將一段文本內(nèi)容或表達(dá)式的結(jié)果輸出到客戶端。" /> 香蕉视频IOS污,精品久久8X国产免费观看,亚洲欧洲自拍图片专区满春格
首頁技術(shù)文章正文

c:out標(biāo)簽怎么使用?

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

1577370495235_學(xué)IT就到黑馬程序員.gif

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

語法1:沒有標(biāo)簽體的情況

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

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

在上述語法格式中,可以看到<c:out>標(biāo)簽有多個(gè)屬性,接下來針對(duì)這些屬性進(jìn)行講解,具體如下:

● value屬性用于指定輸出的文本內(nèi)容;

● default屬性用于指定當(dāng)value屬性為null時(shí)所輸出的默認(rèn)值,該屬性是可選的(方括號(hào)中的屬性都是可選的);

● escapeXml屬性用于指定是否將>、<、&、'、" 等特殊字符進(jìn)行HTML編碼轉(zhuǎn)換后再進(jìn)行輸出,默認(rèn)值為true。需要注意的是,只有當(dāng)value屬性值為null時(shí),<c:out>標(biāo)簽才會(huì)輸出默認(rèn)值,如果沒有指定默認(rèn)值,則默認(rèn)輸出空字符串。

為了使初學(xué)者更好的學(xué)習(xí)<c:out>標(biāo)簽,接下來,通過具體的案例來學(xué)習(xí)<c:out>標(biāo)簽的使用,如下所示:

1、使用標(biāo)簽輸出默認(rèn)值

使用<c:out>標(biāo)簽輸出默認(rèn)值有兩種方式,一是通過使用<c:out>標(biāo)簽的default屬性輸出默認(rèn)值,二是通過使用<c:out>標(biāo)簽的標(biāo)簽體輸出默認(rèn)值。接下來通過一個(gè)案例來演示這兩種使用方式,如例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個(gè)out標(biāo)簽 --%>
   userName屬性的值為:
   <c:out value="${param.username}" default="unknown"/><br>
   <%--第2個(gè)out標(biāo)簽 --%>
   userName屬性的值為:
   <c:out value="${param.username}">
     unknown
   </c:out>
 </body>
 </html>


打開IE瀏覽器,在地址欄中輸入http://localhost:8080/chapter08/c_out1.jsp訪問c_out1.jsp頁面,此時(shí),瀏覽器窗口中顯示的結(jié)果如圖1所示。

1608024799331_c_out1.png

圖1 c_out1.jsp

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

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

1608024808665_c_out2.png

圖2 c_out1.jsp

從圖8-4可以看出,瀏覽器窗口中輸出了userName屬性的值為itcast,這是因?yàn)樵诳蛻舳嗽L問out.jsp頁面時(shí)傳遞了一個(gè)username參數(shù),該參數(shù)的值為itcast,因此,表達(dá)式${param.username}就會(huì)獲取到這個(gè)參數(shù)值,并將其輸出到JSP頁面中。

2、使用標(biāo)簽的escapeXml屬性對(duì)特殊字符進(jìn)行轉(zhuǎn)義

<c:out>標(biāo)簽有一個(gè)重要的屬性escapeXml,該屬性可以將特殊的字符進(jìn)行HTML編碼轉(zhuǎn)換后再輸出,接下來通過一個(gè)案例來演示如何使用escapeXml屬性將特殊字符進(jìn)行轉(zhuǎn)換,如例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頁面,此時(shí),瀏覽器窗口中顯示的結(jié)果如圖3所示。

1608024822307_c_out3.png

圖3 c_out2.jsp

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

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

1608024832310_c_out4.png

圖4 訪問結(jié)果

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


猜你喜歡:

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

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

Java類加載機(jī)制詳解

Java高級(jí)軟件工程師培訓(xùn)課程


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!