熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

使用 Struts 提供的 HTML 標簽庫

2022-06-13   來源: Java開源技術 

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

  
應用程序目錄結構

  這個Login程序是一個簡單的Struts程序它將顯示如何使用HTML標簽庫尤其是和form相關的標簽和用於錯誤處理的標簽其目錄結構如圖中所示
  
  本文將介紹程序中每個類之間的關系以及它們所起的作用注意你必須自己將所有的庫文件復制到WEBINF/lib目錄下為了節省下載時間它們沒有被包含在ZIP文件中
  
  視圖
  MVC范例中有三種作為視圖的JSP頁面loginjsp mainMenujsp和viewSecretjsploginjsp文件中包含一個用於用戶登錄的formmainMenujsp中顯示了兩個鏈接(注銷(log out)和查看公司機密)而viewSecretjsp則用來顯示一條機密消息
  
  這個程序的首頁面是一個Login頁面它是一個包含兩個輸入框(userName和password)的form(見圖用戶被要求在這兩個輸入框中輸入正確的值登錄成功之後程序會顯示mainMenujsp頁面它包含兩個鏈接一個是注銷另一個是查看公司機密賬號(見圖
  
  如果點擊了注銷鏈接程序便會退出並重新顯示Login頁面如果點擊了查看機密鏈接則會顯示viewSecretjsp 頁面如果注冊失敗那麼用戶會被重新引導到Login頁面以重新登錄
  
  如果點擊了注銷鏈接程序便會退出並重新顯示Login頁面如果點擊了查看機密鏈接則會顯示viewSecretjsp 頁面如果注冊失敗那麼用戶會被重新引導到Login頁面以重新登錄
  
 

  
Login頁面

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

  
主頁面

  配置文件
  Login程序有兩個位於WEBINF目錄下的配置文件作為部署描述符的webxml文件(見列表以及作為Struts配置文件的trutsconfigxml文件 (見列表在列表你需要特別注意action servlet配置中的<initparam>元素 <initparam>
   <paramname>application</paramname>
   <paramvalue>comjavaprostruts
     ApplicationResources
      </paramvalue>
  </initparam>
  
  一個<initparam>元素代表一個初始化參數它會被包含在傳送到action servlet中的ServletConfig對象裡帶有名為application的初始化參數對action servlet來說具有特殊的意義它定義了一個會被加載到缺省消息資源(message resource)中的屬性文件(我將在消息資源部分介紹這個屬性文件)在這個程序中該屬性文件被用於存貯整個程序中的錯誤消息
  
  部署描述符中需要注意的第二個地方是的<taglib>元素它包含<tagliburi>和<tagliblocation>元素基本上<taglib>元素是用來告訴servlet容器如何使用一個標簽庫的該標簽庫的TLD文件可以在<tagliblocation>元素指定的位置找到
  
educitycn/img_///gif>

  
機密頁面

  注意在列表<formbeans>部分包含一個名為loginForm的form bean我在關於Struts系列文章的第五部分中曾介紹過form bean
  
  WEBINF目錄中的最後一個文件是strutshtmltld文件它是HTML標簽庫中的TLD文件為了節省時間我將跳過對它的介紹但你可以在ZIP文件中的WEBINF目錄下找到它
  
  Form
  該form以comjavaprostrutsLoginForm類的形式顯示(見列表注意粗體的部分它通過傳入errormissinguserNameerrormissingpassword字符串來舉例說明ActionError對象這些字符串在消息資源中起關鍵字(key)的作用
  
  Action類
  Action類分兩種LoginAction (見列表)和LogoutAction(見列表另外值得一提的是如何通過消息資源中的一個關鍵字來構建這個ActionError消息(在列表中顯示為粗體)
  
  HTML標簽庫的使用
  列表列表和列表中分別包含了JSP文件loginjsp頁面(見列表)中顯示了如何在HTML庫中使用這些標簽(粗體部分)我在本文系列的第一部分中介紹過這些標簽但通過看它如何在真正的程序中運行你會對它們有更深入的了解
  
  消息資源
  如我在配置文件部分簡要介紹的那樣在WEBINF/classes/com/javapro/struts目錄下的ApplicationResourcesproperties 文件中包含配對的key/values它們會被加載到缺省的消息資源中去HTML標簽庫中的<errors>標簽會在該消息資源中查找到自定義的錯誤消息想知道它是如何出錯的你可以試著用一個錯誤的用戶名或密碼來登錄看看顯示的錯誤消息是什麼更改錯誤消息和編輯屬性文件一樣容易看看如下的屬性文件 errorsheader=
  <b>Error(s)!!!</b><ul>
  errorsfooter=
  </ul><hr>
  errormissinguserName=
  <li>A user name was not found</li>
  errormissingpassword=
  <li>A password was not found</li>
  errorloginfailed=
  <li>Incorrect user name and/or password</li>
  
  如果你檢查了程序的webxml文件你會看到這些對象是如何被加載的消息資源通過將程序的參數傳入ActionServlet來完成加載過程在ActionServlet進行初始化時它會將package文件夾中的ApplicationResourcesproperties屬性解析為缺省的消息資源如果在資源中更改一個消息並重新加載程序它就會在整個程序中顯示在你的Login程序中這個屬性文件包含一些程序的類中所使用的錯誤消息
  
  本文介紹了如何在一個簡單的Login程序中使用HTML標簽庫它對程序進行了詳細描述包括視圖配置文件form beanaction類以及用於JSP頁面的代碼
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28134.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.