狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當前位置:系統(tǒng)之家 > 技術開發(fā)教程 > 詳細頁面

Spring Framework標記庫初學向導

Spring Framework標記庫初學向導

更新時間:2020-02-19 文章作者:未知 信息來源:網絡 閱讀次數:

Spring是一個服務于所有層面的application framework:提供了bean的配置基礎,AOP的支持,JDBC的提取框架,抽象事務支持,等等。它有一個非常顯著的特點:在某個層面上如果你不需要Spring的支持,你就可以不使用String的class,只使用它的某一部分的功能。從它的設計理念,你可以看到String幫助你實現了真正的邏輯層和web層的分離。

  相對于EJB來說,Spring是一個輕量級的J2EE應用開發(fā)框架。這里提到的輕量級指的是Spring框架本身,而不是說Spring只能適用于輕量級的應用開發(fā)。Spring的輕盈體現在其框架本身的基礎結構以及對其他應用工具的支持和裝配能力,與EJB這種龐然大物相比,Spring使我們把各個技術層次之間的風險降低。EJB的內聚性較強,比如數據持久層管理、事務管理、生命周期管理都全部交給了EJB容器中管理,內聚性的白盒特征使我們必須放棄一部分可控性而去信任容器能力。而Spring則是考慮如何“不造輪子”,如何更好的組裝這些輪子,讓他們更好的轉動。比如數據持久層管理可以使用hibernate,日志管理可以使用jakartacommonlogging。一個比較恰當的比喻就是“我們要釘幾個釘子,為了完成這個目的,錘子生產商生產了大大小小一系列的錘子,每個錘子都有一套復雜的使用方法,用來釘某種特別的釘子,結果令我們頭疼不堪。解決錘子過多的問題,通過spring,我們可以使用幾種錘子,但用起來象是只有一個錘子”。(注:這段話是在網上看見的,這里引用這個比喻,我個人覺得很生動)關于這個框架也有一些簡單的總結:“Spring有幾個主要的部分:Bean+ApplicationContext,以一種統(tǒng)一的、IoC的方式查找、管理、組裝、使用系統(tǒng)的組件,取代一切工廠;持久化框架;web框架!癑2EE框架”是RodJohnson的愿景,他希望Spring為J2EE輕量級解決方案提供自底至頂的全面基礎設施支持!

  上面是關于一個新的Framework的簡單介紹,據說是未來J2EE發(fā)展的方向。以前在論壇上有關于J2EE最佳組合的討論,聽說這個JSTL+Struts(或webwork)+Spring+Hibernate的組合很被看好,如果你感興趣的話,可以到SpringFramework中文論壇上看看。下面轉入本文的正題。

  Spring 標記庫介紹及用法:

  本文將重點介紹Spring 提供的標記庫及其用法:

  當你在項目中用Spring Framework的時候,表現層可以選擇Spring Framework自帶的標記庫。當然,這不是你唯一的選擇。你可以選擇其它標記庫或模板替換技術。Spring Framework 并沒有為應用提供非常豐富的標記庫。Spring Framework 提供的標記庫僅僅是為了夠用就行,它并不是無所不包的。呵呵,這點與Struts豐富的標記庫不一樣。其實這點符合RodJohnson的出發(fā)點,既“不造輪子”。當然,Spring Framework標記庫有它自身的特點,可以說是個有益的補充吧。

  Spring 標記庫分類如下:

  1、spring:hasBindErrors

  2、spring:bind

  3、spring:transform

  4、spring:message

  5、spring:htmlEscape

  6、spring:theme

  下面我們來具體介紹一下用法:

  1、spring:hasBindErrors

  對應org.springframework.web.servlet.tags.BindErrorsTag標記庫處理類。

  這個標記提供用于綁定對象的errors,如果這個標記被用到的話,那么關于這個對象的錯誤將在頁面上顯示出來。使用這個標記的前提條件是要先使用<spring:bind>標記,并且<spring:hasBindErrors>這個標記不能用來表示對象的狀態(tài),它僅僅可以綁定對象本身和對象的屬性。 具體用法如下:

 。約pring:hasBindErrors name="priceIncrease">
  <b>Please fix all errors!</b>
 。/spring:hasBindErrors>

  通過這個簡單的例子,我來具體說一下這個標記的屬性吧。

  name:是要被檢查的Bean的名字。這個屬性是必需要的。

  這里是簡單用法,所以就不介紹它包含的errors變量了。具體看英語文檔。下同。

  2、spring:bind

  對應org.springframework.web.servlet.tags.BindTag標記庫處理類

  這個標記用來為某個bean或bean 的屬性賦值,通常和form一起用,相當于action的作用。它指明表單要提交到那個類或類的屬性中去。

  其中path屬性是必須的,指明轉到的類的路徑。舉例如下:

 。糵orm method="post">
 。紅able width="95%" bgcolor="f8f8ff" border="0" cellspacing="0" cellpadding="5">
  <tr>
  <td alignment="right" width="20%">Increase (%):</td>
 。約pring:bind path="priceIncrease.percentage">
 。紅d width="20%">
 。糹nput type="text" name="percentage" value="<c:out value="${status.value}"/>">
  </td>
  <td width="60%">
 。糵ont color="red"><c:out value="${status.errorMessage}"/></font>
 。/td>
 。/spring:bind>
  </tr>
  </table>
 。糱r>
  ……………………省略
 。/form>

   3、spring:transform

  對應org.springframework.web.servlet.tags.TransformTag標記庫處理類,這個標記用來轉換表單中不與bean中的屬性一一對應的那些屬性,通常和<spring:bind>一起使用。<spring:transform>標記為<spring:bind>使用提供了更好的支持。

  屬性如下:

  value:必需要的。和當前<spring:bind>標記指向的bean類相同。就是你要轉換的實體類名。

  var:不是必需的。這個字符串被用來綁定輸出結果到page,request, session或application scope.默認情況輸出到jsp中。

  scope:不是必需的。前提條件var必須設置的情況下。它的值可以是page,request, session或application。

  4、spring:message 對應org.springframework.web.servlet.tags.MessageTag標記庫處理類

  這個標記用來幫助springframework支持國際化。和JSTL的fmt:message標記類似。當然這個標記可以很好的工作的本地的springframework框架下。

  屬性如下:

  code:不是必需的。用來查找message,如果沒有被使用的話,text將被使用。

  text:不是必需的。假如code不存在的話,默認是text輸出。當code和text都沒有設置的話,標記將輸出為null.

  var:不是必需的。這個字符串被用來綁定輸出結果到page,request, session或application scope.默認情況輸出到jsp中。

  scope:不是必需的。前提條件var必須設置的情況下。它的值可以是page,request, session或application。

  5、spring:htmlEscape

  對應org.springframework.web.servlet.tags.HtmlEscapeTag標記庫處理類

  不常用,這里省略

  6、spring:theme

  對應org.springframework.web.servlet.tags.ThemeTag標記庫處理類

  不常用,這里省略

  學習完這些用法后,讓我們來看個具體的例子吧。

  配置步驟如下:

  目錄結構圖:

  -spirngapp
  -WEB-INF
  -classes
  -lib
  -src
  -war

  1、將spring.tld拷貝到WEB-INF目錄。

  2、將spring.jar拷貝到WEB-INFlib包下

  舉例如下:

  在web.xml中配置好taglib屬性,代碼如下:

 。?xml version="1.0" encoding="UTF-8"?>
 。!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>
  <web-app>
 。約ervlet>
 。約ervlet-name>springapp</servlet-name>
 。約ervlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 。/servlet>
 。約ervlet-mapping>
 。約ervlet-name>springapp</servlet-name>
  <url-pattern>*.htm</url-pattern>
 。/servlet-mapping>
 。紈elcome-file-list>
 。紈elcome-file> index.jsp </welcome-file>
  </welcome-file-list>
 。紅aglib>
 。紅aglib-uri>/spring</taglib-uri>
 。紅aglib-location>/WEB-INF/spring.tld</taglib-location>
  </taglib>
 。/web-app>

  jsp頁面代碼如下:

 。%@ include file="/WEB-INF/jsp/include.jsp" %>
 。%@ taglib prefix="spring" uri="/spring" %>
  <html>
 。糷ead>
 。紅itle><fmt:message key="title"/></title>
 。/head>
  <body>
 。糷1>
 。糵mt:message key="priceincrease.heading"/>
 。/h1>
  <form method="post">
 。紅able width="95%" bgcolor="f8f8ff" border="0" cellspacing="0" cellpadding="5">
 。紅r>
 。紅d alignment="right" width="20%">Increase (%):</td>
  <spring:bind path="priceIncrease.percentage">
 。紅d width="20%">
 。糹nput type="text" name="percentage" value="<c:out value="${status.value}"/>">
 。/td>
  <td width="60%">
 。糵ont color="red">
 。糲:out value="${status.errorMessage}"/>
 。/font>
  </td>
 。/spring:bind>
  </tr>
  </table>
  <br>
  <spring:hasBindErrors name="priceIncrease">
 。糱>Please fix all errors!</b>
 。/spring:hasBindErrors> <br><br>
 。糹nput type="submit" alignment="center" value="Execute">
  </form>
  <a href="<c:url value="hello.htm"/>">Home</a>
 。/body>
 。/html>

 。約pring:bind>標記經常用來綁定<input>表單元素以便提交給PriceIncrease.java,其實PriceIncrease.java中就是包含一些getter和setter的方法的類。當用戶按下按鈕提交的時候,其表單中的值實際上就被framework放到了PriceIncrease.java中。<spring:bind>經常和form一起使用.這個${status.errorMessage}和${status.value}是一個framework定義的特殊變量,它們被用來顯示錯誤信息和當前表單中的數據。呵呵,今天就到此為止吧,關于Spring Framework標記庫的詳細用法,請參考其文檔。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
久久精品99国产精品| 久久久亚洲精品一区二区三区 | 亚洲黄色av一区| 一区二区91| 日韩av高清在线观看| 亚洲激情在线播放| 国产精品区一区| 蜜桃免费网站一区二区三区| 欧美高清激情brazzers| 成人中文字幕在线| 精品久久久久久亚洲综合网| 国产自产在线视频一区| 午夜视黄欧洲亚洲| 欧美久久一区二区| 92精品国产成人观看免费 | 久久久久久久综合狠狠综合| 亚洲黄色成人久久久| 性感美女极品91精品| 6080午夜不卡| 欧美日韩影院| 日韩电影免费在线| 精品国产免费人成电影在线观看四季| 欧美极品一区| 久久久久99精品国产片| 99综合在线| 国产一区二区导航在线播放| 久久精品人人做人人爽人人| 亚洲一区二区三区色| 国产精品1区2区| 亚洲人精品午夜| 欧美一区二区三区色| 狠狠色噜噜狠狠色综合久| 日本aⅴ免费视频一区二区三区 | 国产情人综合久久777777| 性8sex亚洲区入口| 国产成人h网站| 亚洲啪啪综合av一区二区三区| 欧美主播一区二区三区| 91在线码无精品| 日韩av电影免费观看高清完整版 | 中文字幕欧美一| 9191久久久久久久久久久| 韩国自拍一区| 国产精品系列在线播放| 亚洲精品国产精华液| 欧美一三区三区四区免费在线看 | 久久综合福利| 午夜性色一区二区三区免费视频| 日韩福利电影在线| 国产精品免费看片| 91麻豆精品91久久久久久清纯| 在线视频观看日韩| 成人深夜在线观看| 奇米精品一区二区三区在线观看 | 亚洲小少妇裸体bbw| 久久久久九九视频| 国产精品亚洲一区二区三区妖精| 精品国产成人在线影院| 玖玖精品视频| 国内精品久久国产| 国产一区二区调教| 午夜电影网亚洲视频| 日本一区二区三区四区在线视频| 欧美日韩三级视频| 亚洲一区二区精品在线| 欧美国产综合| 成人免费福利片| 日本va欧美va瓶| 亚洲另类色综合网站| 精品国产一二三| 欧美婷婷六月丁香综合色| 国产偷国产偷亚洲高清97cao| 成人美女视频在线看| 美女任你摸久久| 一区二区三区免费观看| 欧美激情一区在线观看| 欧美成人伊人久久综合网| 欧美日韩国产美女| 免费毛片一区二区三区久久久| 91免费在线看| 不卡av在线网| 国产伦精品一区二区三区免费迷| 亚洲成精国产精品女| 亚洲男人天堂一区| **性色生活片久久毛片| 国产欧美精品一区二区色综合| 日韩视频免费观看高清完整版在线观看| 老司机免费视频久久 | 亚洲黄网站黄| 国自产拍偷拍福利精品免费一 | 欧美日韩一视频区二区| www.在线成人| 成人丝袜视频网| 国产ts人妖一区二区| 精品系列免费在线观看| 另类专区欧美蜜桃臀第一页| 亚洲少妇屁股交4| 久久精品一区蜜桃臀影院| 欧美精品少妇一区二区三区| 久久精品国产99精品国产亚洲性色| 亚洲精品精选| 亚洲午夜一级| 亚洲日本激情| 一区在线视频观看| 影院欧美亚洲| 韩国一区二区三区在线观看| 欧美在线网站| 欧美日韩综合网| 国产精品扒开腿做爽爽爽软件| 欧美激情1区2区3区| 欧美成人嫩草网站| 欧美国产激情| 激情视频一区| 欧美激情五月| 欧美视频不卡| 99精品国产99久久久久久福利| 亚洲毛片视频| 国产精品日本一区二区| 老牛影视一区二区三区| 在线精品观看国产| 欧美日韩国产影片| 日韩欧美国产成人一区二区| 日韩三级精品电影久久久| 日韩欧美一级片| 国产午夜精品一区二区| 中文字幕在线一区二区三区| 怡红院av一区二区三区| 午夜精品视频在线观看| 美脚の诱脚舐め脚责91| 国产精品99久| 午夜欧美视频| 99亚洲一区二区| 色婷婷av一区二区| 91精品国产综合久久福利软件| 2欧美一区二区三区在线观看视频| 久久久久久久一区| 亚洲欧美aⅴ...| 亚洲成av人片| 国产乱国产乱300精品| 99精品视频在线播放观看| 极品中文字幕一区| 久久久久成人精品免费播放动漫| 欧美体内she精高潮| 欧美mv日韩mv| 亚洲欧美综合色| 污片在线观看一区二区| 国产精品一区二区三区99| 女同一区二区| 美女黄网久久| 日韩欧美国产不卡| 1024成人网| 蜜臀av性久久久久av蜜臀妖精| 成人黄色在线看| 国产欧美日韩一级| 欧美浪妇xxxx高跟鞋交| 国产精品三级久久久久三级| 亚洲国产wwwccc36天堂| 国产一区在线观看视频| 国产在线欧美| 欧美少妇一区二区| 国产女人aaa级久久久级 | 亚洲午夜国产一区99re久久| 精品系列免费在线观看| 国产精品二区在线观看| 在线观看一区二区视频| 国产精品午夜在线观看| 奇米一区二区三区av| 女人色偷偷aa久久天堂| 色综合久久天天| 国产三级一区二区| 免费看黄色91| 亚洲性图久久| 欧美一区二区三区四区高清| 一区二区在线观看免费| 风流少妇一区二区| 亚洲一区二区三区免费观看| 精品国精品国产| 亚洲va韩国va欧美va| 欧美永久精品| 欧美日韩一级二级| 亚洲免费视频成人| www.欧美日韩| 在线视频国产一区| 亚洲欧美自拍偷拍色图| 国产黄色成人av| 欧美综合77777色婷婷| 久久综合久久综合亚洲| 免费看欧美女人艹b| 亚洲高清自拍| 久久综合久久综合久久| 奇米色一区二区三区四区| 亚洲国产欧洲综合997久久| 欧美日韩国产一二三| 一区二区三区在线视频观看| 欧美精品日韩一区| 又紧又大又爽精品一区二区| 成人精品高清在线| 欧美午夜精品电影| 亚洲午夜免费电影| 在线精品亚洲|