麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

使用 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頁面的代碼。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产91精品亚洲精品日韩已满 | 国产午夜精品一区二区三区四区 | 日韩欧美高清一区 | 国产大片在线观看 | 在线成人免费观看视频 | 92看片淫黄大片欧美看国产片 | 天天草天天干天天射 | 在线a毛片 | 在线观看免费毛片视频 | 羞羞视频一区 | 国产中文av在线 | 91网址在线观看 | 久久人人97超碰国产公开结果 | 娇妻被各种姿势c到高潮小说 | 久久成人激情视频 | 成人免费毛片一 | 亚洲国产精品一区二区三区 | 毛片成人网 | 亚洲狠狠入 | 国产精品久久久久久影视 | 欧美精品欧美 | 亚洲午夜激情网 | 欧美日韩在线中文字幕 | 毛片在线免费观看网址 | 高清国产在线 | 欧美亚洲国产成人综合在线 | 成人午夜在线播放 | 国产成人网| 日本在线观看高清完整版 | 成年人视频在线免费播放 | a级在线| 久久亚洲视频网 | 激情综合在线观看 | 777午夜精品视频在线播放 | 精品国产一区二区三区四 | 毛片在线免费观看完整版 | 精品一区久久久 | 欧美a级在线免费观看 | 久久99综合久久爱伊人 | h视频免费观看 | 91网站在线观看视频 |