文章來源:http://blog.csdn.net/xhinker/archive/2008/04/04/2252100.aspx
讓Struts2 在NetBeans 6中安家
——在 NetBeans 6 中使用 Struts2
前言:NetBeans 6 和 Struts2
每次使用一種java編輯器或IDE(如eclipse)一個多小時后,總是發現自己已經在NetBeans里敲代碼了。至于Struts2,這是一個融合了WebWork 和Struts1.X 的基于MVC的Web開發框架,使用相當廣泛。
在當前的NetBeans6.1中你還找不到Struts2的影子(至少我所使用的版本里沒有,據說已經有人在開發插件了)。不過,這一點也不會妨礙NetBean 6 和 Struts2走在一起。在后面你會發現,他們倆配合的還是相當默契的。
本篇文章就是為了告訴您,如何將NetBeans和 Struts2撮合在一起(在這里Struts2甚至還可以和JSF和Visual Web Pack一起使用)
準備工作:
1. JDK 5.0 (或更高版本);
2. NetBeans 6 或者 NetBeans 6.1 Beta(本文使用的是NetBeans 6.1 Beta);
3. Struts2 開發包;
4. Tomcat 5.5 (或更高版本)。
一.啟動NetBeans 6.1 創建一個Web 工程

創建一個 Web Project:
點擊File à New Project;
選擇Categories 中的Web,再選擇Projects中的 Web Application;
點擊Next.

如下圖填寫,這里的Server也可以是NetBeans綁定的 Tomcat 6

點擊Next,然后再點擊Next 看到如下界面:

什么都不要選點擊Finish. 工程創建完畢,進入下一部分。
二.創建Struts2 Library 并導入Struts2 開發包
點擊 Tools à Libraries

點擊New Library...
Library Name: Struts2
Library Type : Class Library
點擊OK
選擇圖中所示的struts2 java包

點擊ok 回到主界面。右鍵點擊Libraries 然后選擇Add Library...


點擊Add Library 基本Struts2的開發包已經導入完畢。
三.配置Web.xml
如圖所示;單擊web.xml 然后點擊右側的Filters 單擊Add Filter Element

Filter Name: 可以任意填寫 不過那一串長長的Filter Class 可不太容易記住。只可惜點開Browse...之后也無法選擇Libraries里面的包,不能不說是一個遺憾。希望下一個版本的NetBeans 會修正這一小小的不足。
Filter Name:Struts2 Filter;
Filter Class:org.apache.struts2.dispatcher.FilterDispatcher

接下來就是Mapping Filter了,點擊Add...

如圖填寫,Struts2 Filter 要和上面的保持一致。URL Pattern里面填寫 *.action 即可

事實上,在其他IDE里面配置Web.xml的時候,你可能要自己動手寫xml(相信大多數程序員都很討厭寫又長又臭的xml. 而且稍微一出錯,能把眼睛看痛)
以上的幾步操作,NetBeans為我們自動生成了以下代碼,您也可以去看看。

現在你可以暫時不用管web.xml了。
四.編寫struts.xml
struts.xml 可以說是整個struts2框架的中心。大多數配置錯誤也出現在struts.xml上。一個jsp頁面提交后不是像傳統的做法那樣直接傳給另一個頁面,而是交由struts.xml進行處理。struts.xml調用后臺action 類 進行處理后,決定轉向那個頁面.那么我們如何編寫以及在哪里放置struts.xml呢?
我們要將struts.xml放置在Source Packages的default package包下。如圖

給文件命名為struts

接下來點擊struts.xml進行編寫,之前我們要在xml文檔的頭部加入

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

把原來的<root></root>刪除。換成<struts></struts> 輸入”<p” 然后 按 Ctrl+Space

這個時候 NetBeans已經完全認識了Struts2(估計它們已經成為好伙伴了)。繼續編寫,如果你怕出錯,或者不愿意太麻煩,按 Ctrl+Space. Netbeans 6.1 會為你解決很多問題。(不得不說的是,NetBean6.0以后的版本在代碼完成方面有了一個很大的提高,速度和智能兩方面都值得稱贊)一路編寫下來。以下是編好的代碼:
<struts>
<package name="xhinker" extends="struts-default" >
<action name="hello" class="cn.xhinker.struts2.HelloAction">
<result>/helloPage.jsp</result>
</action>
</package>
</struts>

文檔中 action 標簽中的name屬性要特別注意,因為這個是用來標識這個action的。class屬性里的是,action類。當點擊一個jsp頁面里的<a href=”hello.action”>enter</a>的時候。程序會根據hello.action 在struts.xml里找到name=”hello”的標簽。繼而找到后臺的 HelloAction 類。然后根據HelloAction 實例的返回值,找到result標簽中對應的頁面,實現頁面的轉移。result標簽有一個name屬性如 <result name=”success”>/helloPage.jsp</result>如果不寫 name屬性,則默認為 name=”success”.
保存,關閉這個頁面,接下來我們來編寫HelloAction
五,編寫HelloAction類
右鍵單擊Source Package 創建一個java類。

如下填寫:

讓HelloAction 繼承ActionSupport
package cn.xhinker.struts2;
import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport{
}

這個時候有人會問,我如何讓NetBeans 幫我override(重寫)父類的方法啊?沒有這樣的按鈕啊?不用找了。Ctrl+Space. 您要的重寫的方法,八九不離十已經顯示在你的面前了:

我們要的就是這個execute()方法。稍微改變一下代碼如下所示:

public String execute() throws Exception {
return this.SUCCESS;
}

添加一個字符串變量msg 然后讓NetBeans 自動生成 setter 和 getter方法。如圖在彈出的菜單中選擇Encapsulate Field...即可

生成完畢,這個類就編好了,完整的代碼為:
package cn.xhinker.struts2;
import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport{
private String msg="Hello World";

public String execute() throws Exception {
return this.SUCCESS;
}


public String getMsg() {
return msg;
}


public void setMsg(String msg) {
this.msg = msg;
}
}

進入下一部分。
六.編寫jsp頁面
在index.jsp中的body標簽內加入<a href="hello.action">hello</a>

新建一個hello.jsp頁面 添加如圖所示的代碼:

到此為止,你也該啟動那只大花貓 Tomcat了。Build à run
但愿你沒有遇到麻煩:-)
posted on 2008-04-07 19:06
Ke 閱讀(1512)
評論(0) 編輯 收藏 所屬分類:
struts 2 、
netBeans