更新時(shí)間:2021-09-13 11:39:46 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1383次
Web項(xiàng)目若使用Spring Web MVC并使用JSP作為表現(xiàn)的話。從Spring2.0版本開(kāi)始提供一套標(biāo)簽庫(kù)可供使用。
使用標(biāo)簽庫(kù)無(wú)非是易于開(kāi)發(fā),維護(hù)之類(lèi)云云。這里就不闡述了。我們還是更關(guān)注spring有哪些標(biāo)簽庫(kù)和如何使用。
spring.tld標(biāo)簽庫(kù)核心類(lèi)的包在org.springframework.web.servlet.tags。
(1)spring:hasBindErrors
對(duì)應(yīng)org.springframework.web.servlet.tags.BindErrorsTag標(biāo)記庫(kù)處理類(lèi)。
這個(gè)標(biāo)記提供用于綁定對(duì)象的errors,如果這個(gè)標(biāo)記被用到的話,那么關(guān)于這個(gè)對(duì)象的錯(cuò)誤將在頁(yè)面上顯示出來(lái)。使用這個(gè)標(biāo)記的前提條件是要先使用<spring:bind>標(biāo)記,并且<spring:hasBindErrors>這個(gè)標(biāo)記不能用來(lái)表示對(duì)象的狀態(tài),它僅僅可以綁定對(duì)象本身和對(duì)象的屬性。
舉例
<spring:hasBindErrors name="priceIncrease">
<b>Please fix all errors!</b>
</spring:hasBindErrors>
屬性
name:是要被檢查的Bean的名字。這個(gè)屬性是必需要的。
(2)spring:bind
對(duì)應(yīng)org.springframework.web.servlet.tags.BindTag標(biāo)記庫(kù)處理類(lèi)
這個(gè)標(biāo)記用來(lái)為某個(gè)bean或bean的屬性賦值,通常和form一起用,相當(dāng)于action的作用。它指明表單要提交到那個(gè)類(lèi)或類(lèi)的屬性中去。
其中path屬性是必須的,指明轉(zhuǎn)到的類(lèi)的路徑。
(3)spring:transform
對(duì)應(yīng)org.springframework.web.servlet.tags.TransformTag標(biāo)記庫(kù)處理類(lèi),這個(gè)標(biāo)記用來(lái)轉(zhuǎn)換表單中不與bean中的屬性一一對(duì)應(yīng)的那些屬性,通常和<spring:bind>一起使用。<spring:transform>標(biāo)記為<spring:bind>使用提供了更好的支持。
屬性
value:必需要的。和當(dāng)前標(biāo)記指向的bean類(lèi)相同。就是你要轉(zhuǎn)換的實(shí)體類(lèi)名。
var:不是必需的。這個(gè)字符串被用來(lái)綁定輸出結(jié)果到page,request, session或application scope.默認(rèn)情況輸出到j(luò)sp中。
scope:不是必需的。前提條件var必須設(shè)置的情況下。它的值可以是page,request, session或application。
(4)spring:message
對(duì)應(yīng)org.springframework.web.servlet.tags.MessageTag標(biāo)記庫(kù)處理類(lèi)
這個(gè)標(biāo)記用來(lái)幫助springframework支持國(guó)際化。和JSTL的fmt:message標(biāo)記類(lèi)似。當(dāng)然這個(gè)標(biāo)記可以很好的工作的本地的springframework框架下。
屬性
code:不是必需的。用來(lái)查找message,如果沒(méi)有被使用的話,text將被使用。
text:不是必需的。假如code不存在的話,默認(rèn)是text輸出。當(dāng)code和text都沒(méi)有設(shè)置的話,標(biāo)記將輸出為null.
var:不是必需的。這個(gè)字符串被用來(lái)綁定輸出結(jié)果到page,request, session或application scope.默認(rèn)情況輸出到j(luò)sp中。
scope:不是必需的。前提條件var必須設(shè)置的情況下。它的值可以是page,request, session或application。
(5)spring:htmlEscape
對(duì)應(yīng)org.springframework.web.servlet.tags.HtmlEscapeTag標(biāo)記庫(kù)處理類(lèi)
(6)spring:theme
對(duì)應(yīng)org.springframework.web.servlet.tags.ThemeTag標(biāo)記庫(kù)處理類(lèi)
Spring-form.tld標(biāo)簽庫(kù)核心類(lèi)的包在org.springframework.web.servlet.tags.form。
spring的表單標(biāo)簽庫(kù)
(1)方法1
曾在《[JSP]自定義標(biāo)簽》介紹過(guò)如何自定義標(biāo)簽,那么我們知道我們必須取得標(biāo)簽庫(kù)描述文件(spring.tld和Spring-form.tld)、標(biāo)簽處理類(lèi)、并在web.xml中引入、最后才在jsp中使用。
1)將spring.tld和Spring-form.tld拷貝到WEB-INF目錄。
2)將spring.jar拷貝到WEB-INF\lib包下
3)配置web.xml
<!-- 定義標(biāo)簽庫(kù)描述文件 -->
<jsp-config>
<taglib>
<taglib-uri>/spring-form</taglib-uri>
<taglib-location>/WEB-INF/spring-form.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/spring</taglib-uri>
<taglib-location>/WEB-INF/spring.tld</taglib-location>
</taglib>
</jsp-config>
<!-- 使用監(jiān)聽(tīng)器加載spring配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
一定要使用listener加載spring配置文件,不然會(huì)報(bào)“No WebApplicationContext found”的錯(cuò)。
4)JSP代碼
<%@ taglib uri="/spring" prefix="spring"%>
<%@ taglib uri="/spring-form" prefix="from"%>
<html>
<head>
<title></title>
</head>
<body>
<spring:message></spring:message>
<from:form></from:form>
</body>
</html>
這種方法我們使用本地的tld,這種方法的好處我們可以自定義dtl。當(dāng)然我們也可以使用網(wǎng)絡(luò)上的tld。
(2)方法2
1)配置web.xml
<!-- 使用監(jiān)聽(tīng)器加載spring配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
2)JSP代碼
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="from"%>
<html>
<head>
<title></title>
</head>
<body>
<spring:message></spring:message>
<from:form></from:form>
</body>
</html>
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"使用Spring標(biāo)簽庫(kù)的方法",希望對(duì)大家有幫助,想了解更多可查看Spring框架教程。動(dòng)力節(jié)點(diǎn)在線學(xué)習(xí)教程,針對(duì)沒(méi)有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門(mén)到精通,主要介紹了一些Java基礎(chǔ)的核心知識(shí),讓同學(xué)們更好更方便的進(jìn)行Java學(xué)習(xí),感興趣的同學(xué)可以關(guān)注一下。
Java實(shí)驗(yàn)班
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
Java就業(yè)班
有基礎(chǔ) 直達(dá)就業(yè)
Java夜校直播班
業(yè)余時(shí)間 高薪轉(zhuǎn)行
Java在職加薪班
工作1~3年,加薪神器
Java架構(gòu)師班
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)