生活随笔
收集整理的這篇文章主要介紹了
EE JSP:使用JSTL标记库生成动态内容
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
除了在JSP中編寫自己的定制標(biāo)記之外,您還將發(fā)現(xiàn)Java EE實(shí)際上提供了一組Java標(biāo)準(zhǔn)標(biāo)記庫(kù)(JSTL)供您使用。 這些內(nèi)置標(biāo)簽包括重復(fù)(for-loop)標(biāo)簽,條件標(biāo)簽,變量聲明和輸出標(biāo)簽等。庫(kù)還帶有許多實(shí)用程序功能和國(guó)際消息格式標(biāo)簽。 這是一個(gè)看起來(lái)像的例子。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html><body><h1>JSTL Examples</h1><h2>List of Application Context: ${applicationScope}</h2><table><c:forEach var="entry" items="${applicationScope}"><tr><td>${entry.key}</td><td><c:out value="${entry.value}"/></td></tr></c:forEach></table><h2>List of Session Context: ${sessionScope}</h2><table><c:forEach var="entry" items="${sessionScope}"><tr><td>${entry.key}</td><td><c:out value="${entry.value}"/></td></tr></c:forEach></table><h2>List of Page Context: ${pageScope}</h2><table><c:forEach var="entry" items="${pageScope}"><tr><td>${entry.key}</td><td><c:out value="${entry.value}"/></td></tr></c:forEach></table><h2>List of Request Context: ${requestSope}</h2><table><c:forEach var="entry" items="${requestSope}"><tr><td>${entry.key}</td><td><c:out value="${entry.value}"/></td></tr></c:forEach></table><h2>List of Query Parameters: ${param}</h2><table><c:forEach var="entry" items="${param}"><tr><td>${entry.key}</td><td><c:out value="${entry.value}"/></td></tr></c:forEach></table><h2>List of Header Parameters: ${header}</h2><table><c:forEach var="entry" items="${header}"><tr><td>${entry.key}</td><td><c:out value="${entry.value}"/></td></tr></c:forEach></table> <h2>List of Cookies: ${cookie}</h2><table><c:forEach var="entry" items="${cookie}"><tr><td>${entry.key}</td><td><c:out value="${entry.value}"/></td></tr></c:forEach></table></body>
</html>
我在這里使用了核心標(biāo)記,以顯示一些隱式變量的映射條目。 您可以在Spec的示例頁(yè)面頂部定義的那些標(biāo)簽聲明中進(jìn)行更多研究。 這些代碼來(lái)自GitHub的jsp-example 。
GLASSFISH注意:在GlassFish 3/4中部署以上示例時(shí),您將遇到NullPointerException并導(dǎo)致頁(yè)面導(dǎo)致錯(cuò)誤。 事實(shí)證明,GF服務(wù)器在ServletContext(應(yīng)用程序范圍)中添加了一個(gè)名為com.sun.jsp.taglibraryCache的內(nèi)部變量,該變量在調(diào)用toString()時(shí)會(huì)拋出NPE! 要解決此問(wèn)題,我創(chuàng)建了jstl-example2.jsp
將$ {entry.value}包裝到自定義JSTL函數(shù)中,從而保證返回輸出而不會(huì)引發(fā)異常。 因此,吸取的教訓(xùn)是,您應(yīng)該始終返回一個(gè)String,并且在覆蓋時(shí)不要拋出Exception
Java類的toString()。 這只是不好的做法。
翻譯自: https://www.javacodegeeks.com/2015/02/ee-jsp-generating-dynamic-content-jstl-tag-libraries.html
總結(jié)
以上是生活随笔為你收集整理的EE JSP:使用JSTL标记库生成动态内容的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。