本文中我們將會簡單的描述Workshop10.1中對Struts提供的開發支持,并且通過簡單的例子,描述如何通過Workshop10.1提供的可視化界面完成Struts應用開發過程中的幾個重要步驟:
- 創建FormBean;
- 創建Action;
- 管理Action中的Forward設置;
- 可視化的生成相應的JSP頁面。
Workshop10.1中對Struts應用開發的可視化支持
Workshop10.1中為Hibernate提供了多種可視化界面和向導的支持,主要包括以下幾個方面:
- 通過向導在Web應用中引入Struts;
- 為Struts的FormBean、Action、Forward、JSP提供可視化的向導,協助開發者快速的創建Struts元素;
- 為Struts校驗提供可視化配置界面;
- 為創建國際化的Struts應用提供可視化支持。
開發步驟
本文中我們將通過一個簡單的例子來演示如何使用Workshop10.1提供的可視化環境開發Struts應用的過程,這個例子將通過JSP頁面接收用戶的輸入,并且將接收到的信息打印在控制臺上。
通過向導創建支持Struts的Web應用
- 啟動Workshop10.1工具,打開菜單FileàNew-->Project…;
- 選擇項目類型為Dynamic Web Project;
- 輸入項目名稱為StrutsDemo,選擇configurations為<custom>
- 單擊Next進入Project Facets配置頁,選擇configurations為<custom>,Project Facet列表中選擇Struts、Danymic Web Module、Java、Java Annotation Processing四項。
- 單擊Next直到出現Struts配置框。
- 單擊Add…按鈕,出現Struts支持包的配置界面
開發者可以選擇直接從BEA站點下載Struts1.2.9,或者是使用本地已經下載的Sturts安裝包。
- 其他配置均使用默認配置,所以直接單擊Finish按鈕結束項目配置。
創建需要用到的JSP文件
在AppXplorer視圖中,展開新創建的StrutsDemo應用,展開WebContentàpages節點,在pages節點上單擊右鍵,選擇NewàJSP創建StrutsDemo應用中所需要的三個JSP文件
創建FormBean
- 在AppXplorer視圖中,展開新創建的StrutsDemo應用,展開WebContentàStrutsàModulesàdefaultàFormBeans節點,在FormBeans節點上單擊右鍵,選擇New Form Bean…
- 在彈出的FormBean配置框中輸入如下信息
- 單擊New bean后面的New…按鈕,在彈出的Java Class配置框中輸入如下信息
- 單擊Finish按鈕關閉Java Class設置框;
- 單擊Next按鈕FormBean屬性設置框,通過其右邊的按鈕,在其中輸入如下信息
- 單擊Finish按鈕完成Form Bean的創建工作。
創建Action、管理Action中的Forward設置
- 在AppXplorer視圖中,展開新創建的StrutsDemo應用,展開WebContentàStrutsàModulesàdefaultàAction Mappings節點,在Action Mappings節點上單擊右鍵,選擇New Action Mappings…
- 在彈出的Action Mappings配置框中輸入如下信息
- 單擊New Action后面的New…按鈕,在Java Class屬性設置框中輸入如下信息
- 單擊Finish關閉Java Class屬性設置框
- 單擊Next進入導航配置界面
界面右側的Add…按鈕可以為該Action增加導航設置。
使用相同的方式為Action設置合適的導航設置:
- 其他屬性都采用默認配置,單擊finish按鈕結束Action的創建。
為Action增加業務處理代碼
在AppXplorer視圖中,展開StrutsDemo應用,展開WebContentàsrcàcom.levainservice.demo.struts.actions節點
雙擊UserRegisterAction.java節點,在打開的源代碼編輯視圖中輸入如下內容,其中標注為紅色的部分是業務處理部分相關Java代碼。
package com.levainservice.demo.struts.actions;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.levainservice.demo.struts.beans.UserFormBean;
public class UserRegiterAction extends Action {
/* forward name="regok" path="/pages/regok.jsp" */
private final static String REGOK = "regok";
/* forward name="regerror" path="/pages/regerror.jsp" */
private final static String REGERROR = "regerror";
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionForward forward = mapping.findForward(REGOK);
UserFormBean user = (UserFormBean) form;
System.out.println("");
System.out.println("=======您輸入的信息如下======");
System.out.println("username: " + user.getUname());
System.out.println("password: " + user.getUpassword());
System.out.println("address: " + new String(user.getUaddress().getBytes("iso8859-1"),"gb2312"));
System.out.println("telephone: " + user.getUtelephone());
System.out.println("=======結束======");
System.out.println("");
return forward;
}
}
可視化的生成JSP頁面中接收用戶輸入的Form
通過上面的步驟我們已經完成了Struts中FormBean、Action等主要內容的開發,現在輪到了JSP頁面。在AppXplorer視圖中,展開StrutsDemo應用,展開WebContentàpages節點,雙擊regInput.jsp節點,打開regInput.jsp的編輯器。
- 在右邊的Workshop Palette視圖中,展開Struts HTML,單擊Form圖標,并且將他拖到regInput.jsp的編輯區
- 在彈出的Form設置界面中,輸入如下信息
- 在彈出的Form Fields屬性設置界面中,不選擇uid前面的多選框。
- 單擊Next,進入Form Fields詳細設置界面,用右邊的Up和Down按鈕調整屬性的前后位置,他們決定了這些字段在頁面上的顯示順序,同時使用Input type列設置upassword顯示控件類型為Password類型的文本框。
- 單擊Finish完成Form的創建,現在regInput.jsp的編輯區顯示如下。
測試創建的Struts應用
在AppXplorer視圖中,展開StrutsDemo應用,展開WebContentàpages節點,在regInput.jsp上單擊右鍵,選擇Run asàRun On server。
根據Workshop10.1的向導將Struts應用發布到WebLogic Server10上,Workshop10將使用內置的瀏覽器打開regInput.jsp,我們在其中輸入如下信息:
單擊Submit按鈕,WebLogic Server完成處理后我們能在控制臺上看到如下信息: