亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用 Struts 提供的 HTML 標簽庫

2019-11-18 12:55:26
字體:
來源:轉載
供稿:網友

  在本文系列的第一部分中,你已經學習了如何配置Struts提供的Html標簽庫以及獨立使用的標簽;在第二部分中你學習了和form相關的標簽;在第三部分中,你將學習如何在Login程序中使用HTML標簽庫。你可以點此下載該程序。假如你閱讀過關于Struts的系列文章(包含六個部分),你會發現這個Longin程序是上次我們討論過的Login程序的增強版。
  
 使用 Struts 提供的 HTML 標簽庫(圖一)


  
圖1. 應用程序目錄結構

  這個Login程序是一個簡單的Struts程序,它將顯示如何使用HTML標簽庫,尤其是和form相關的標簽和用于錯誤處理的標簽。其目錄結構如圖1中所示。
  
  本文將介紹程序中每個類之間的關系以及它們所起的作用。注重,你必須自己將所有的庫文件復制到WEB-INF/lib目錄下;為了節省下載時間它們沒有被包含在Zip文件中。
  
  視圖
  MVC范例中有三種作為視圖的jsp頁面:login.jsp、 mainMenu.jsp和viewSecret.jsp。login.jsp文件中包含一個用于用戶登錄的form,mainMenu.jsp中顯示了兩個鏈接(注銷(log out)和查看公司機密),而viewSecret.jsp則用來顯示一條機密消息。
  
  這個程序的首頁面是一個Login頁面,它是一個包含兩個輸入框(userName和passWord)的form(見圖2)。用戶被要求在這兩個輸入框中輸入正確的值。登錄成功之后程序會顯示mainMenu.jsp頁面,它包含兩個鏈接:一個是注銷,另一個是查看公司機密賬號(見圖3)。
  
  假如點擊了“注銷”鏈接,程序便會退出并重新顯示Login頁面。假如點擊了“查看機密”鏈接,則會顯示viewSecret.jsp 頁面。假如注冊失敗,那么用戶會被重新引導到Login頁面以重新登錄。
  
  假如點擊了“注銷”鏈接,程序便會退出并重新顯示Login頁面。假如點擊了“查看機密”鏈接,則會顯示viewSecret.jsp 頁面。假如注冊失敗,那么用戶會被重新引導到Login頁面以重新登錄。
  
 使用 Struts 提供的 HTML 標簽庫(圖二)

  
圖2. Login頁面

  假如用戶輸入正確的用戶名和密碼,程序會建立一個session對象,并會有一個名為loggedIn的屬性被添加到這個session對象中去。只有當程序能夠在用戶的session對象中查找到這個loggedIn屬性時,用戶才可以瀏覽Main Menu頁面和Secret頁面。所有缺少該屬性或無效的session對象都會迫使用戶登錄。在這個程序中,正確的用戶名是“john”,密碼是“123”。這些值是程序中固定寫死的以避免需要連接到數據庫里或使用其他存儲來完成用戶驗證。
  
  當用戶注銷時,他或她的session對象將失效,同時Longin頁面會重新顯示。當用戶點擊鏈接要查看公司機密時,會彈出viewSecret.jsp頁面(見圖4)。
  
 使用 Struts 提供的 HTML 標簽庫(圖三)

  
圖3. 主頁面

  配置文件
  Login程序有兩個位于WEB-INF目錄下的配置文件:作為部署描述符的web.XML文件(見列表1);以及作為Struts配置文件的truts-config.xml文件 (見列表2)。在列表1中,你需要非凡注重action servlet配置中的<init-param>元素: <init-param>
   <param-name>application</param-name>
   <param-value>com.javaPRo.struts.
     applicationResources
      </param-value>
  </init-param>
  
  一個<init-param>元素代表一個初始化參數,它會被包含在傳送到action servlet中的ServletConfig對象里。帶有名為“application”的初始化參數對action servlet來說具有非凡的意義:它定義了一個會被加載到缺省消息資源(message resource)中的屬性文件。(我將在“消息資源”部分介紹這個屬性文件)。在這個程序中,該屬性文件被用于存貯整個程序中的錯誤消息。
  
  部署描述符中需要注重的第二個地方是的<taglib>元素,它包含<taglib-uri>和<taglib-location>元素。基本上,<taglib>元素是用來告訴servlet容器如何使用一個標簽庫的,該標簽庫的TLD文件可以在<taglib-location>元素指定的位置找到。
  
使用 Struts 提供的 HTML 標簽庫(圖四)

  
圖4. 機密頁面

  注重在列表2中,<form-beans>部分包含一個名為loginForm的form bean。我在關于Struts系列文章的第五部分中曾介紹過form bean。
  
  WEB-INF目錄中的最后一個文件是struts-html.tld文件,它是HTML標簽庫中的TLD文件。為了節省時間我將跳過對它的介紹,但你可以在ZIP文件中的WEB-INF目錄下找到它。
  
  Form
  該form以com.javapro.struts.LoginForm類的形式顯示(見列表3)。注重粗體的部分:它通過傳入“error.missing.userName”和“error.missing.password”字符串來舉例說明ActionError對象,這些字符串在消息資源中起要害字(key)的作用。
  
  Action類
  Action類分兩種:LoginAction (見列表4)和LogoutAction(見列表5)。另外值得一提的是如何通過消息資源中的一個要害字來構建這個ActionError消息(在列表4中顯示為粗體)。
  
  HTML標簽庫的使用
  列表6、列表7和列表8中分別包含了JSP文件。login.jsp頁面(見列表6)中顯示了如何在HTML庫中使用這些標簽(粗體部分)。我在本文系列的第一部分中介紹過這些標簽,但通過看它如何在真正的程序中運行,你會對它們有更深入的了解。
  
  消息資源
  如我在“配置文件”部分簡要介紹的那樣,在WEB-INF/classes/com/javapro/struts目錄下的ApplicationResources.properties 文件中包含配對的key/values,它們會被加載到缺省的消息資源中去。HTML標簽庫中的<errors>標簽會在該消息資源中查找到自定義的錯誤消息。想知道它是如何出錯的,你可以試著用一個錯誤的用戶名或密碼來登錄,看看顯示的錯誤消息是什么。更改錯誤消息和編輯屬性文件一樣輕易??纯慈缦碌膶傩晕募?errors.header=
  <b>Error(s)!!!</b><ul>
  errors.footer=
  </ul><hr>
  error.missing.userName=
  <li>A user name was not found.</li>
  error.missing.password=
  <li>A password was not found.</li>
  error.login.failed=
  <li>Incorrect user name and/or password.</li>
  
  假如你檢查了程序的web.xml文件,你會看到這些對象是如何被加載的。消息資源通過將程序的參數傳入ActionServlet來完成加載過程。在ActionServlet進行初始化時,它會將package文件夾中的ApplicationResources.properties屬性解析為缺省的消息資源。假如在資源中更改一個消息并重新加載程序,它就會在整個程序中顯示。在你的Login程序中,這個屬性文件包含一些程序的類中所使用的錯誤消息。
  
  本文介紹了如何在一個簡單的Login程序中使用HTML標簽庫。它對程序進行了具體描述,包括視圖、配置文件、form bean、action類以及用于JSP頁面的代碼。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成年人视频网站欧美| 国产在线视频2019最新视频| 日韩av网址在线观看| 91精品在线观看视频| 精品久久久久人成| 欧美午夜片在线免费观看| 日韩免费在线免费观看| 国产精品吊钟奶在线| 久久中文字幕视频| 国内精品久久久久久中文字幕| 国产视频自拍一区| 精品国产区一区二区三区在线观看| 精品国产自在精品国产浪潮| 色综合天天综合网国产成人网| 欧美午夜激情在线| 热久久这里只有| 欧美激情xxxxx| 大荫蒂欧美视频另类xxxx| 欧美日韩免费一区| 久久久久中文字幕2018| 欧美怡春院一区二区三区| 国内精品久久久久久久| 91美女片黄在线观| 7m精品福利视频导航| 欧美丝袜第一区| 成人写真福利网| 精品无码久久久久久国产| 亚洲综合色av| 92看片淫黄大片看国产片| 中文字幕日韩精品在线观看| 亚洲小视频在线观看| 久久久久久一区二区三区| 久久精品青青大伊人av| 搡老女人一区二区三区视频tv| 亚洲欧美日韩一区二区三区在线| 日韩精品在线私人| 亚洲一区美女视频在线观看免费| 91久久久亚洲精品| 亚洲成人av片在线观看| 日韩免费高清在线观看| 狠狠躁夜夜躁人人躁婷婷91| 最近中文字幕mv在线一区二区三区四区| 欧美性猛交视频| 2019最新中文字幕| 国产精品大陆在线观看| 色久欧美在线视频观看| 日韩精品在线免费观看视频| 成人午夜一级二级三级| 亚洲精品videossex少妇| 亚洲成年人在线| 黄色一区二区在线观看| 国产成人精品日本亚洲专区61| 日韩欧美精品免费在线| 最近2019中文字幕mv免费看| 久久久久久久久中文字幕| 中文字幕久久久| 亚洲韩国青草视频| 亚洲最大福利网站| 亚洲视频自拍偷拍| 性金发美女69hd大尺寸| 一本色道久久88综合日韩精品| 欧美精品videosex牲欧美| 色老头一区二区三区| 色偷偷噜噜噜亚洲男人| www.日韩.com| 97香蕉超级碰碰久久免费的优势| 精品久久久久久久久久| 日本精品在线视频| 亚洲成人久久电影| 亚洲人成毛片在线播放| 最近中文字幕mv在线一区二区三区四区| 国产精品欧美日韩久久| 97在线视频免费观看| 日韩视频中文字幕| 国产美女精品视频| 欧美午夜激情小视频| 热久久视久久精品18亚洲精品| 国产成人一区二区在线| 91网站在线免费观看| 日韩av在线免费播放| 欧美性资源免费| 成人国产精品久久久久久亚洲| 欧美激情综合亚洲一二区| 91精品久久久久久久久久入口| 91精品久久久久久久久久| 日韩在线免费高清视频| 中文字幕av一区二区| 亚洲综合中文字幕68页| 国产精品视频专区| 国内偷自视频区视频综合| 国产精品扒开腿做爽爽爽男男| 欧洲精品毛片网站| 欧美精品手机在线| 91久久国产精品| 日本久久91av| 亚洲第一综合天堂另类专| 中文字幕亚洲一区二区三区| 精品久久久久久久久久久久久| 亚洲精品理论电影| 欧美精品一区在线播放| 亚洲天堂开心观看| 国产精品久久中文| 亚洲第一男人av| 国产欧美日韩免费看aⅴ视频| 欧美第一黄色网| 久久精品夜夜夜夜夜久久| 欧美疯狂性受xxxxx另类| 国产精品一区二区久久国产| 亚洲欧美激情在线视频| 亚洲精品一区二区久| 国产视频综合在线| 亚洲午夜久久久久久久| 九九热这里只有精品免费看| 久久韩剧网电视剧| 红桃视频成人在线观看| 日韩精品黄色网| 亚洲第一天堂无码专区| 成人在线视频网| 国产视频亚洲精品| 欧美专区在线视频| 亚洲人线精品午夜| 中文字幕亚洲情99在线| 国产aⅴ夜夜欢一区二区三区| 97国产精品免费视频| 欧美福利视频在线观看| 一本色道久久88精品综合| 国产精品a久久久久久| 日韩在线视频导航| 亚洲激情视频在线| 欧美成人精品三级在线观看| 日av在线播放中文不卡| 亚洲电影免费观看| 最新亚洲国产精品| 九九精品在线视频| 国产精品欧美一区二区| 欧洲成人午夜免费大片| 亚洲视频在线免费看| 欧美最猛性xxxxx免费| 国产一区二区三区在线播放免费观看| 久久精品国产91精品亚洲| 国产精品www| 欧美国产在线电影| 欧美另类xxx| 91麻豆国产语对白在线观看| 精品激情国产视频| 热久久这里只有| 精品日本高清在线播放| 欧美日韩亚洲视频| yellow中文字幕久久| 亚洲欧洲美洲在线综合| 久久久久久久久亚洲| 日韩视频在线观看免费| 搡老女人一区二区三区视频tv| 国产一区私人高清影院| 中文字幕久精品免费视频| 欧美一级大片在线观看| www亚洲精品| 最近中文字幕mv在线一区二区三区四区| 色妞在线综合亚洲欧美| 日韩中文在线视频| 国产视频亚洲视频| 国产精品一区二区3区| 精品国产91久久久| 亚洲国产成人精品电影|