狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美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视频
久久久不卡网国产精品一区| 韩国v欧美v亚洲v日本v| 成人午夜免费av| 久久亚洲一区二区三区四区| 91在线国内视频| 亚洲国产精品t66y| 国产精品久久国产愉拍| 欧美国产禁国产网站cc| 成人av高清在线| 久久久天天操| 久久国产精品一区二区三区| 激情五月婷婷综合| 欧美亚洲免费| 波多野结衣91| 亚洲午夜视频在线| 2023国产精品视频| 亚洲欧美日韩国产综合精品二区| 国产精品一区在线观看乱码| 久久久三级国产网站| 99精品国产99久久久久久福利| 麻豆国产欧美日韩综合精品二区| 国产精品视频观看| 亚洲激情欧美| 国产精品资源网| 国产精品亲子伦对白| 欧美日韩夫妻久久| 玖玖精品视频| 精品视频1区2区3区| 91福利在线免费观看| 一区二区不卡在线视频 午夜欧美不卡'| 美腿丝袜一区二区三区| 美女网站一区二区| 国产乱理伦片在线观看夜一区| 久久99久久99小草精品免视看| 亚洲婷婷在线| 久久伊人亚洲| 欧美一级黄色大片| 中文字幕一区在线观看视频| 亚洲欧美激情小说另类| 视频一区国产视频| 成人免费看的视频| 国产亚洲毛片| 欧美在线观看视频一区二区三区| 6080午夜不卡| 一区视频在线播放| 在线欧美视频| 5566中文字幕一区二区电影| 精品国产麻豆免费人成网站| 樱花草国产18久久久久| 久久久五月婷婷| 一个色综合av| 国产在线精品免费| 在线国产欧美| 4438亚洲最大| 亚洲午夜精品17c| 亚洲网站在线| 欧美综合一区二区| 国产精品麻豆欧美日韩ww| 三级欧美在线一区| 99国内精品久久| 91黄色免费版| **性色生活片久久毛片| 国产成人免费高清| 在线观看视频一区二区欧美日韩| 亚洲国产岛国毛片在线| 国产成人av一区二区三区在线 | 欧美激情视频一区二区三区在线播放 | 美女一区二区三区在线观看| 国产伦精品一区二区三区高清版| xfplay精品久久| 国产一区二区美女| 在线一区二区观看| 亚洲大型综合色站| 国产亚洲精品v| 亚洲成人综合在线| 国产欧美日韩在线播放| 中文字幕一区日韩精品欧美| 女主播福利一区| 国产精品美女久久久久久| 欧美日韩一区二区三区在线视频 | 久久久久久综合| 国产精品大片免费观看| 国产亚洲成aⅴ人片在线观看| 99热精品国产| 亚洲三级在线观看| 国产精品国码视频| 夜夜精品视频一区二区| 久久午夜av| 国产99久久久国产精品| 国产精品丝袜在线| 一区二区国产日产| 久久福利视频一区二区| 国产日韩欧美在线一区| 在线综合视频| 国产馆精品极品| 亚洲欧美激情在线| 欧美精品成人一区二区三区四区| www.久久久久久久久| 亚洲图片你懂的| 欧美视频在线播放| 欧美成人日韩| 美脚の诱脚舐め脚责91 | 亚洲成av人综合在线观看| 日韩女优av电影在线观看| 亚洲精品视频啊美女在线直播| 激情图片小说一区| 一区二区三区在线观看国产| 欧美一区二区在线不卡| 国产精品久久久久久久久婷婷| 懂色av一区二区三区免费看| 亚洲狠狠丁香婷婷综合久久久| 日韩欧美亚洲一区二区| 久久xxxx| 国产精品免费在线| 在线欧美视频| 亚洲人成高清| 欧美三级小说| 国产亚洲欧美另类一区二区三区| 国产福利一区二区三区视频| 婷婷久久综合九色综合绿巨人| 中文字幕亚洲不卡| 2021国产精品久久精品| 天天综合色天天| 亚洲国产精品一区二区www在线 | 在线观看视频欧美| 欧美精品在线观看一区二区| 91成人免费网站| 欧美日韩国产一二三| 欧美日本一区二区在线观看| 色婷婷综合久久久中文一区二区| 裸体一区二区| 欧洲一区在线电影| 6080日韩午夜伦伦午夜伦| 精品国产乱码久久久久久影片| 精品国产自在久精品国产| 欧美sm美女调教| 亚洲视频香蕉人妖| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲国产中文字幕| 精品一区二区三区在线观看国产| 久久国产精品一区二区| 成人免费不卡视频| 亚洲韩日在线| 在线观看视频一区二区欧美日韩| 欧美一级日韩免费不卡| 国产精品系列在线| 日韩va欧美va亚洲va久久| 国产成人综合在线观看| 影音国产精品| 欧美日韩国产另类一区| 亚洲天堂久久久久久久| 国产一区二区三区四区五区入口| 欧美理论在线| 欧美日韩精品一区二区三区蜜桃 | 亚洲高清资源| 欧美日本免费一区二区三区| 中文字幕日本乱码精品影院| 麻豆精品在线看| 99在线精品视频在线观看| 欧美日韩成人综合| 亚洲另类色综合网站| 成人国产免费视频| 欧美日高清视频| 日本不卡视频在线观看| 一本久道久久综合婷婷鲸鱼| 欧美一区二区三区成人| 久久精品国产99久久6| 麻豆av福利av久久av| 亚洲黄色免费网站| 亚洲欧洲精品一区二区| 国产午夜亚洲精品理论片色戒| 国产激情视频一区二区在线观看| 欧美亚洲综合久久| 午夜影院久久久| 久久一日本道色综合久久| 午夜电影网一区| 久热精品视频| 美国十次综合导航| 欧美在线免费播放| 久久99久国产精品黄毛片色诱| 在线日韩国产精品| 韩日精品视频一区| 欧美另类高清zo欧美| 国产成人丝袜美腿| 国产亚洲精品久| 亚洲裸体视频| 国内精品久久久久影院色| 日韩三级高清在线| 欧美不卡在线| 午夜精品久久久久久久99樱桃| 欧美在线色视频| 99精品久久久久久| 最新成人av在线| 欧美色图免费看| 亚洲欧美在线网| 石原莉奈在线亚洲二区| 精品不卡在线视频| 色噜噜久久综合| 成人福利视频网站| 五月激情综合婷婷|