Struts是一個基於Sun JEE平台的MVC框架主要是采用Servlet和JSP技術來實現的由於Struts能充分滿足應用開發的需求簡單易用敏捷迅速在過去的幾年中頗受關注Struts把ServletJSP自定義標簽和信息資源(message resources)整合到一個統一的框架中開發人員利用其進行開發時不用再自己編碼實現全套MVC模式極大的節省了時間所以說Struts是一個非常不錯的應用框架很多公司開發的產品都是基於此框架的
當然有朋友一提起編程就覺得頭痛是否如此呢?我想通過本期的struts教程你便會有自己的結論喲!
本期struts教程本著從易用實用的目的出發帶您手把手地完成公司開發中常用模塊的開發使你迅速上手struts
主要通過以下六個模塊
一登錄驗證實例
二解決中文亂碼問題實例
三連數據庫實例
四國際化
五驗證數據實例
六模塊使用實例
七制作簡單留言板實例
使大家對struts能由淺入深的學習最終撐握它
萬事開頭難就讓我們一起來經歷struts的開發吧經過本系列的學習你肯定能很快地駕馭它給自己多幾分信心吧!
閒話不多說接下來就開始實戰吧!!
一普通的登錄驗證實例
效果圖
我們以結果為導向首先大家先看看要完成的效果圖對接下來要做的事情有個清晰的認識
如圖鍵入
顯示結果如下圖
如果您輸入的是合法的話則如下圖
開發步驟
A首先建立一工程選擇web模塊最後再加載struts包即可在工程中新建一包命名為actions在下面新建一類文件命名為LoginAction裡面一定要重寫execute方法注意參數的順序及返回類型都是不可以變化的
在struts中action類起著控制轉向的作用當我們輸入用戶名與密碼並點了提交按鈕後需要交給控制器來決斷我們是轉向到登陸成功頁還是登陸失敗頁LoginAction在此就起這麼個功能具體代碼請依照如下所示
public class LoginAction extends Action {
public ActionForward execute(ActionMapping actionMapping
ActionForm actionForm
HttpServletRequest servletRequest
HttpServletResponse serveltResponse) {
LoginActionForm loginform = (LoginActionForm) actionForm;
String username = loginformgetUsername();
String userpass = loginformgetUserpass();
boolean flag = false;
String actionpath = ;
if (usernameequals() &&userpassequals()) {
actionpath = success;
} else {
actionpath = error;
}
return actionMappingfindForward(actionpath);
}
}
在LoginAction中我們得到一個ActionForm對象並把它強轉成LoginActionForm
待我們處理即通過ActionForm的匹配名稱的表單自動封裝機制取得用戶輸入用戶名密碼
我們返回的結果將會被ActionFormward對象所包裝比如這兒的success表示用戶合法error表示用戶不合法這個字符串將決定著頁面的流程控制它並不是一個具體存在的頁面它是如何跟一個具體的頁面關聯上的呢?
呵呵先不要急我們來分析幾點
你在操作時記住的概念
Struts的核心是Action而Action的核心就是一個配置文件——strutsconfigxml它既然是核心就很重要哦
Maping映射
a) actionMappingfindForward(映射名稱); 它返回的是一個ActionForward對象
b) strutsconfigxml裡面action節點下的
實現機制Struts會根據你傳進actionMappingfindForward(映射名稱)它會到你當前action節點下去找forward這個節點並把你傳進的參數與這個節點的name屬性進行匹配如果相等它就會跳到這個節點的path所指定的頁面
例
ActionactionMappingfindForward(success)
Strutsconfigxml
如果是這種情況的話它就會轉發到successjsp頁面
注意
a) 方法的參數值和name節點的值對應
b) Path所指定的頁面前面必須加上/
B在前面我們提到了ActionForm所以我們還需要建立一個類文件這個類文件將封裝頁面用戶輸入的用戶名和密碼
注意
這個類必須繼承ActionForm類它將完成與頁面的自動封裝
類中的屬性名稱一定要和頁面的輸入框的名稱對應為了自動封裝的匹配工作
這個類中一定要提供所有與屬性相匹配的set 和 get方法
好前面寫了這些代碼看上去還是有些雜亂無章怎麼把它們關聯起來呢?又怎麼調用這些代碼呢?呵呵群龍不會無首的下面就一起來關注struts的裝配文件它可是相當於struts的總司令喲!
C核心部分跳轉控制Strutsconfigxml部分
<strutsconfig>
<formbeans>
<formbean name=loginActionForm type=formbeansLoginActionForm />
</formbeans>
<actionmappings>
<action path=/login name=loginActionForm type=actionsLoginAction>
<forward name=success path=/successjsp/>
<forward name=error path=/wrongjsp/>
</action>
</actionmappings>
</strutsconfig>
我們對strutsxml做一下相應的介紹吧如下
用來配置一個ActionForm Bean常用配置的幾個屬性
name指定該ActionForm Bean的唯一標識符整個Struts框架用該標識符來引用這個Bean該屬性是必需的
type指定ActionForm類的全限定名該屬性是必需的
用來描述特定的請求路徑到相應的Action類的映射常用配置的幾個屬性
input 指定包含輸入表單的URL路徑當表單驗證失敗時將把請求轉發到該URL
name 指定和該Action關聯的ActionForm Bean的名字
path 指定訪問Action的路徑它以/開頭沒有擴展名
Scope 指定ActionForm Bean的存在范圍(session | request)
Validate指定是否要先調用ActionForm Bean的validate()方法默認值為true
Action的子元素常用配置的幾個屬性
name 指定轉發路徑的邏輯名必需的
path 指定轉發(或重定向)的URI必須以/開頭必需的
redirect當此項為true時表示執行重定向操作為false時表示執行請求轉發操作默認值為false
D頁面loginjsp用戶登錄頁面提供用戶輸入功能具體代碼如下所示
<form method=post action=logindo>
請輸入姓名<input type=text name=username value=/><br />
請輸入密碼<input type=password name=userpass value=/><br>
<input type=submit name=Submit value=Submit>
<input type=reset value=Reset>
</form>
注意
action後面的logindo就是strutsconfigxml裡面你要訪問的action節點path的值哦
切記哦如果你請求的URL的引用了formbean的話這裡的名稱一定要對應哦
還有successjsp wrongjsp分別代表登錄成功和登錄失敗頁面就不再多說啦!
啟動Tomcat連接上您的應用程序網址例如填入用戶名密碼並送出窗體您的歡迎頁面就會顯示了
怎麼樣本章節是不是比較容易?其實struts就這麼簡單能完成本章節的要求吧!現在你已經上手啦接著往下學我們會有越來越多的收獲喲!!
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28288.html