本文中我們將會(huì)簡(jiǎn)單的描述Workshop10.1中對(duì)Struts提供的開發(fā)支持,并且通過簡(jiǎn)單的例子,描述如何通過Workshop10.1提供的可視化界面完成Struts應(yīng)用開發(fā)過程中的幾個(gè)重要步驟:
- 創(chuàng)建FormBean;
- 創(chuàng)建Action;
- 管理Action中的Forward設(shè)置;
- 可視化的生成相應(yīng)的JSP頁面。
Workshop10.1中對(duì)Struts應(yīng)用開發(fā)的可視化支持
Workshop10.1中為Hibernate提供了多種可視化界面和向?qū)У闹С郑饕ㄒ韵聨讉€(gè)方面:
- 通過向?qū)г赪eb應(yīng)用中引入Struts;
- 為Struts的FormBean、Action、Forward、JSP提供可視化的向?qū)В瑓f(xié)助開發(fā)者快速的創(chuàng)建Struts元素;
- 為Struts校驗(yàn)提供可視化配置界面;
- 為創(chuàng)建國(guó)際化的Struts應(yīng)用提供可視化支持。
開發(fā)步驟
本文中我們將通過一個(gè)簡(jiǎn)單的例子來演示如何使用Workshop10.1提供的可視化環(huán)境開發(fā)Struts應(yīng)用的過程,這個(gè)例子將通過JSP頁面接收用戶的輸入,并且將接收到的信息打印在控制臺(tái)上。
通過向?qū)?chuàng)建支持Struts的Web應(yīng)用
- 啟動(dòng)Workshop10.1工具,打開菜單FileàNew-->Project…;
- 選擇項(xiàng)目類型為Dynamic Web Project;
- 輸入項(xiàng)目名稱為StrutsDemo,選擇configurations為<custom>
- 單擊Next進(jìn)入Project Facets配置頁,選擇configurations為<custom>,Project Facet列表中選擇Struts、Danymic Web Module、Java、Java Annotation Processing四項(xiàng)。
- 單擊Next直到出現(xiàn)Struts配置框。
- 單擊Add…按鈕,出現(xiàn)Struts支持包的配置界面
開發(fā)者可以選擇直接從BEA站點(diǎn)下載Struts1.2.9,或者是使用本地已經(jīng)下載的Sturts安裝包。
- 其他配置均使用默認(rèn)配置,所以直接單擊Finish按鈕結(jié)束項(xiàng)目配置。
創(chuàng)建需要用到的JSP文件
在AppXplorer視圖中,展開新創(chuàng)建的StrutsDemo應(yīng)用,展開WebContentàpages節(jié)點(diǎn),在pages節(jié)點(diǎn)上單擊右鍵,選擇NewàJSP創(chuàng)建StrutsDemo應(yīng)用中所需要的三個(gè)JSP文件
創(chuàng)建FormBean
- 在AppXplorer視圖中,展開新創(chuàng)建的StrutsDemo應(yīng)用,展開WebContentàStrutsàModulesàdefaultàFormBeans節(jié)點(diǎn),在FormBeans節(jié)點(diǎn)上單擊右鍵,選擇New Form Bean…
- 在彈出的FormBean配置框中輸入如下信息
- 單擊New bean后面的New…按鈕,在彈出的Java Class配置框中輸入如下信息
- 單擊Finish按鈕關(guān)閉Java Class設(shè)置框;
- 單擊Next按鈕FormBean屬性設(shè)置框,通過其右邊的按鈕,在其中輸入如下信息
- 單擊Finish按鈕完成Form Bean的創(chuàng)建工作。
創(chuàng)建Action、管理Action中的Forward設(shè)置
- 在AppXplorer視圖中,展開新創(chuàng)建的StrutsDemo應(yīng)用,展開WebContentàStrutsàModulesàdefaultàAction Mappings節(jié)點(diǎn),在Action Mappings節(jié)點(diǎn)上單擊右鍵,選擇New Action Mappings…
- 在彈出的Action Mappings配置框中輸入如下信息
- 單擊New Action后面的New…按鈕,在Java Class屬性設(shè)置框中輸入如下信息
- 單擊Finish關(guān)閉Java Class屬性設(shè)置框
- 單擊Next進(jìn)入導(dǎo)航配置界面
界面右側(cè)的Add…按鈕可以為該Action增加導(dǎo)航設(shè)置。
使用相同的方式為Action設(shè)置合適的導(dǎo)航設(shè)置:
- 其他屬性都采用默認(rèn)配置,單擊finish按鈕結(jié)束Action的創(chuàng)建。
為Action增加業(yè)務(wù)處理代碼
在AppXplorer視圖中,展開StrutsDemo應(yīng)用,展開WebContentàsrcàcom.levainservice.demo.struts.actions節(jié)點(diǎn)
雙擊UserRegisterAction.java節(jié)點(diǎn),在打開的源代碼編輯視圖中輸入如下內(nèi)容,其中標(biāo)注為紅色的部分是業(yè)務(wù)處理部分相關(guān)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("=======結(jié)束======");
System.out.println("");
return forward;
}
}
可視化的生成JSP頁面中接收用戶輸入的Form
通過上面的步驟我們已經(jīng)完成了Struts中FormBean、Action等主要內(nèi)容的開發(fā),現(xiàn)在輪到了JSP頁面。在AppXplorer視圖中,展開StrutsDemo應(yīng)用,展開WebContentàpages節(jié)點(diǎn),雙擊regInput.jsp節(jié)點(diǎn),打開regInput.jsp的編輯器。
- 在右邊的Workshop Palette視圖中,展開Struts HTML,單擊Form圖標(biāo),并且將他拖到regInput.jsp的編輯區(qū)
- 在彈出的Form設(shè)置界面中,輸入如下信息
- 在彈出的Form Fields屬性設(shè)置界面中,不選擇uid前面的多選框。
- 單擊Next,進(jìn)入Form Fields詳細(xì)設(shè)置界面,用右邊的Up和Down按鈕調(diào)整屬性的前后位置,他們決定了這些字段在頁面上的顯示順序,同時(shí)使用Input type列設(shè)置upassword顯示控件類型為Password類型的文本框。
- 單擊Finish完成Form的創(chuàng)建,現(xiàn)在regInput.jsp的編輯區(qū)顯示如下。
測(cè)試創(chuàng)建的Struts應(yīng)用
在AppXplorer視圖中,展開StrutsDemo應(yīng)用,展開WebContentàpages節(jié)點(diǎn),在regInput.jsp上單擊右鍵,選擇Run asàRun On server。
根據(jù)Workshop10.1的向?qū)truts應(yīng)用發(fā)布到WebLogic Server10上,Workshop10將使用內(nèi)置的瀏覽器打開regInput.jsp,我們?cè)谄渲休斎肴缦滦畔ⅲ?/p>
單擊Submit按鈕,WebLogic Server完成處理后我們能在控制臺(tái)上看到如下信息: