免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Spring Framework標記庫初學(xué)者指南
    Spring是一個服務(wù)于所有層面的application framework:提供了bean的配置基礎(chǔ),AOP的支持,JDBC的提取框架,抽象事務(wù)支持,等等。它有一個非常顯著的特點:在某個層面上如果你不需要Spring的支持,你就可以不使用String的class,只使用它的某一部分的功能。從它的設(shè)計理念,你可以看到String幫助你實現(xiàn)了真正的邏輯層和web層的分離。
   相對于EJB來說,Spring是一個輕量級的J2EE應(yīng)用開發(fā)框架。這里提到的輕量級指的是Spring框架本身,而不是說Spring只能適用于輕量級的應(yīng)用開發(fā)。Spring的輕盈體現(xiàn)在其框架本身的基礎(chǔ)結(jié)構(gòu)以及對其他應(yīng)用工具的支持和裝配能力,與EJB這種龐然大物相比,Spring使我們把各個技術(shù)層次之間的風(fēng)險降低。EJB的內(nèi)聚性較強,比如數(shù)據(jù)持久層管理、事務(wù)管理、生命周期管理都全部交給了EJB容器中管理,內(nèi)聚性的白盒特征使我們必須放棄一部分可控性而去信任容器能力。而Spring則是考慮如何“不造輪子”,如何更好的組裝這些輪子,讓他們更好的轉(zhuǎn)動。比如數(shù)據(jù)持久層管理可以使用hibernate,日志管理可以使用jakartacommonlogging。一個比較恰當(dāng)?shù)谋扔骶褪?#8220;我們要釘幾個釘子,為了完成這個目的,錘子生產(chǎn)商生產(chǎn)了大大小小一系列的錘子,每個錘子都有一套復(fù)雜的使用方法,用來釘某種特別的釘子,結(jié)果令我們頭疼不堪。解決錘子過多的問題,通過spring,我們可以使用幾種錘子,但用起來象是只有一個錘子”。(注:這段話是在網(wǎng)上看見的,這里引用這個比喻,我個人覺得很生動)關(guān)于這個框架也有一些簡單的總結(jié):“Spring有幾個主要的部分:Bean+ApplicationContext,以一種統(tǒng)一的、IoC的方式查找、管理、組裝、使用系統(tǒng)的組件,取代一切工廠;持久化框架;web框架。“J2EE框架”是RodJohnson的愿景,他希望Spring為J2EE輕量級解決方案提供自底至頂?shù)娜婊A(chǔ)設(shè)施支持。” 
   好了,上面是關(guān)于一個新的Framework的簡單介紹,據(jù)說是未來J2EE發(fā)展的方向。以前在論壇上有關(guān)于J2EE最佳組合的討論,聽說這個JSTL+Struts(或webwork)+Spring+Hibernate的組合很被看好(觀點不一,僅供參考,呵呵),如果你感興趣的話,可以到SpringFramework中文論壇上看看。下面轉(zhuǎn)入本文的正題。

Spring 標記庫介紹及用法:


    本文將重點介紹Spring 提供的標記庫及其用法:
當(dāng)你在項目中用Spring Framework的時候,表現(xiàn)層可以選擇Spring Framework自帶的標記庫。當(dāng)然,這不是你唯一的選擇。你可以選擇其它標記庫或模板替換技術(shù)。Spring Framework 并沒有為應(yīng)用提供非常豐富的標記庫。Spring Framework 提供的標記庫僅僅是為了夠用就行,它并不是無所不包的。呵呵,這點與Struts豐富的標記庫不一樣。其實這點符合RodJohnson的出發(fā)點,既“不造輪子”。當(dāng)然,Spring Framework標記庫有它自身的特點,可以說是個有益的補充吧。
Spring 標記庫分類如下:
1。Spring:hasBindErrors 
2。Spring:bind 
3。Spring:transform 
4。Spring:message 
5。Spring:htmlEscape 
6。Spring:theme 
下面我們來具體介紹一下用法:
1。Spring:hasBindErrors 
對應(yīng)org.springframework.web.servlet.tags.BindErrorsTag標記庫處理類。
這個標記提供用于綁定對象的errors,如果這個標記被用到的話,那么關(guān)于這個對象的錯誤將在頁面上顯示出來。使用這個標記的前提條件是要先使用<Spring:bind>標記,并且<Spring:hasBindErrors>這個標記不能用來表示對象的狀態(tài),它僅僅可以綁定對象本身和對象的屬性。 具體用法如下:
  1. <Spring:hasBindErrors name="priceIncrease">
  2.     <b>Please fix all errors!</b>
  3.   </Spring:hasBindErrors>

  通過這個簡單的例子,我來具體說一下這個標記的屬性吧。
  name:是要被檢查的Bean的名字。這個屬性是必需要的。
  呵呵,這里是簡單用法,所以就不介紹它包含的errors變量了。具體看英語文檔。下同。
  
2。Spring:bind 
對應(yīng)org.springframework.web.servlet.tags.BindTag標記庫處理類
這個標記用來為某個bean或bean 的屬性賦值,通常和form一起用,相當(dāng)于action的作用。它指明表單要提交到那個類或類的屬性中去。
其中path屬性是必須的,指明轉(zhuǎn)到的類的路徑。舉例如下:
  1. <form method="post">
  2.   <table width="95%" bgcolor="f8f8ff" border="0" cellspacing="0" cellpadding="5">
  3.     <tr>
  4.       <td alignment="right" width="20%">Increase (%):</td>
  5.       <Spring:bind path="priceIncrease.percentage">
  6.         <td width="20%">
  7.           <input type="text" name="percentage" value="<c:out value="${status.value}"/>">
  8.         </td>
  9.         <td width="60%">
  10.           <font color="red"><c:out value="${status.errorMessage}"/></font>
  11.         </td>
  12.       </Spring:bind>
  13.     </tr>
  14.   </table>
  15.   <br>
  16.  ……………………省略
  17. </form>

3。Spring:transform 
對應(yīng)org.springframework.web.servlet.tags.TransformTag標記庫處理類,這個標記用來轉(zhuǎn)換表單中不與bean中的屬性一一對應(yīng)的那些屬性,通常和<Spring:bind>一起使用。<Spring:transform>標記為<Spring:bind>使用提供了更好的支持。
屬性如下:
value:必需要的。和當(dāng)前<Spring:bind>標記指向的bean類相同。就是你要轉(zhuǎn)換的實體類名。
var:不是必需的。這個字符串被用來綁定輸出結(jié)果到page,request, session或application scope.默認情況輸出到j(luò)sp中。
scope:不是必需的。前提條件var必須設(shè)置的情況下。它的值可以是page,request, session或application。

4。Spring:message 對應(yīng)org.springframework.web.servlet.tags.MessageTag標記庫處理類
這個標記用來幫助springframework支持國際化。和JSTL的fmt:message標記類似。當(dāng)然這個標記可以很好的工作的本地的springframework框架下。
屬性如下:
code:不是必需的。用來查找message,如果沒有被使用的話,text將被使用。
text:不是必需的。假如code不存在的話,默認是text輸出。當(dāng)code和text都沒有設(shè)置的話,標記將輸出為null.
var:不是必需的。這個字符串被用來綁定輸出結(jié)果到page,request, session或application scope.默認情況輸出到j(luò)sp中。
scope:不是必需的。前提條件var必須設(shè)置的情況下。它的值可以是page,request, session或application。

5。Spring:htmlEscape 
對應(yīng)org.springframework.web.servlet.tags.HtmlEscapeTag標記庫處理類
不常用,這里省略
6。Spring:theme 
對應(yīng)org.springframework.web.servlet.tags.ThemeTag標記庫處理類
不常用,這里省略
哈哈,學(xué)習(xí)完這些用法后,讓我們來看個具體的例子吧。
配置步驟如下:
目錄結(jié)構(gòu)圖:
-spirngapp 
  -WEB-INF 
      -classes 
      -lib 
  -src 
  -war
1。將spring.tld拷貝到WEB-INF目錄。
2。將spring.jar拷貝到WEB-INF\lib包下
舉例如下:
在web.xml中配置好taglib屬性,代碼如下:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE web-app PUBLIC ‘-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN‘ ‘http://java.sun.com/dtd/web-app_2_3.dtd‘>
  3. <web-app>
  4.   <servlet>
  5.     <servlet-name>springapp</servlet-name>
  6.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  7.     <load-on-startup>1</load-on-startup>
  8.   </servlet>
  9.   <servlet-mapping>
  10.     <servlet-name>springapp</servlet-name>
  11.     <url-pattern>*.htm</url-pattern>
  12.   </servlet-mapping>
  13.   <welcome-file-list>
  14.     <welcome-file>
  15.       index.jsp
  16.     </welcome-file>
  17.   </welcome-file-list>
  18.   <taglib>
  19.     <taglib-uri>/Spring</taglib-uri>
  20.     <taglib-location>/WEB-INFspring.tld</taglib-location>
  21.   </taglib>
  22. </web-app>

jsp頁面代碼如下:
  1. <%@ include file="/WEB-INF/jsp/include.jsp" %>
  2. <%@ taglib prefix="Spring" uri="/Spring" %>
  3. <html>
  4. <head><title><fmt:message key="title"/></title></head>
  5. <body>
  6. <h1><fmt:message key="priceincrease.heading"/></h1>
  7. <form method="post">
  8.   <table width="95%" bgcolor="f8f8ff" border="0" cellspacing="0" cellpadding="5">
  9.     <tr>
  10.       <td alignment="right" width="20%">Increase (%):</td>
  11.       <Spring:bind path="priceIncrease.percentage">
  12.         <td width="20%">
  13.           <input type="text" name="percentage" value="<c:out value="${status.value}"/>">
  14.         </td>
  15.         <td width="60%">
  16.           <font color="red"><c:out value="${status.errorMessage}"/></font>
  17.         </td>
  18.       </Spring:bind>
  19.     </tr>
  20.   </table>
  21.   <br>
  22.   <Spring:hasBindErrors name="priceIncrease">
  23.     <b>Please fix all errors!</b>
  24.   </Spring:hasBindErrors>
  25.   <br><br>
  26.   <input type="submit" alignment="center" value="Execute">
  27. </form>
  28. <a href="<c:url value="hello.htm"/>">Home</a>
  29. </body>
  30. </html>

<Spring:bind>標記經(jīng)常用來綁定<input>表單元素以便提交給PriceIncrease.java,其實PriceIncrease.java中就是包含一些getter和setter的方法的類。當(dāng)用戶按下按鈕提交的時候,其表單中的值實際上就被framework放到了PriceIncrease.java中。<Spring:bind>經(jīng)常和form一起使用.這個${status.errorMessage}和${status.value}是一個framework定義的特殊變量,它們被用來顯示錯誤信息和當(dāng)前表單中的數(shù)據(jù)。呵呵,今天就到此為止吧,關(guān)于Spring Framework標記庫的詳細用法,請參考其文檔。
參考資料:
http://www.springframework.org/
Spring Framework英文文檔
Spring Framework中文論壇
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
開發(fā)Spring MVC應(yīng)用程序(3-2)
在servlet、filter、Taglib中獲取Spring Bean
spring3 MVC實戰(zhàn),手工搭建Spring3項目demo
在spring web應(yīng)用中獲得ApplicationContext的引用(2014-06-27)
Spring輸入驗證與數(shù)據(jù)綁定
英語作文:記一次春游A Spring Outing
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服