让Struts2 在NetBeans 6中安家

Struts2 NetBeans 6中安家

—— NetBeans 6 中使用 Struts2

前言:NetBeans 6 Struts2

每次使用一种java编辑器或IDE(如eclipse)一个多小时后,总是发现自己已经在NetBeans里敲代码了。至于Struts2,这是一个融合了WebWork Struts1.X 的基于MVCWeb开发框架,使用相当广泛。

在当前的NetBeans6.1中你还找不到Struts2的影子(至少我所使用的版本里没有,据说已经有人在开发插件了)。不过,这一点也不会妨碍NetBean 6 Struts2走在一起。在后面你会发现,他们俩配合的还是相当默契的。

本篇文章就是为了告诉您,如何将NetBeans Struts2撮合在一起(在这里Struts2甚至还可以和JSFVisual 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 工程

让Struts2 在NetBeans 6中安家

创建一个 Web Project

点击File à New Project;

选择Categories 中的Web,再选择Projects中的 Web Application;

点击Next.

让Struts2 在NetBeans 6中安家

如下图填写,这里的Server也可以是NetBeans绑定的 Tomcat 6

让Struts2 在NetBeans 6中安家

点击Next,然后再点击Next 看到如下界面:

<shapetype id="_x0000_t75" stroked="f" filled="f" path="[email protected]@[email protected]@[email protected]@[email protected]@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><img alt="" src="http://p.blog.****.net/images/p_blog_****_net/xhinker/14.JPG"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 363.75pt; HEIGHT: 258.75pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png"></imagedata></shape>

什么都不要选点击Finish. 工程创建完毕,进入下一部分。

二.创建Struts2 Library 并导入Struts2 开发包

点击 Tools à Libraries

让Struts2 在NetBeans 6中安家

点击New Library...

Library Name: Struts2

Library Type : Class Library

点击OK

选择图中所示的struts2 java

让Struts2 在NetBeans 6中安家

点击ok 回到主界面。右键点击Libraries 然后选择Add Library...

让Struts2 在NetBeans 6中安家

让Struts2 在NetBeans 6中安家

点击Add Library 基本Struts2的开发包已经导入完毕。

三.配置Web.xml

如图所示;单击web.xml 然后点击右侧的Filters 单击Add Filter Element

让Struts2 在NetBeans 6中安家

Filter Name: 可以任意填写 不过那一串长长的Filter Class 可不太容易记住。只可惜点开Browse...之后也无法选择Libraries里面的包,不能不说是一个遗憾。希望下一个版本的NetBeans 会修正这一小小的不足。

Filter Name:Struts2 Filter;

Filter Class:org.apache.struts2.dispatcher.FilterDispatcher

让Struts2 在NetBeans 6中安家

接下来就是Mapping Filter了,点击Add...

让Struts2 在NetBeans 6中安家

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

让Struts2 在NetBeans 6中安家

事实上,在其他IDE里面配置Web.xml的时候,你可能要自己动手写xml(相信大多数程序员都很讨厌写又长又臭的xml. 而且稍微一出错,能把眼睛看痛)

以上的几步操作,NetBeans为我们自动生成了以下代码,您也可以去看看。

让Struts2 在NetBeans 6中安家

现在你可以暂时不用管web.xml了。

四.编写struts.xml

struts.xml 可以说是整个struts2框架的中心。大多数配置错误也出现在struts.xml上。一个jsp页面提交后不是像传统的做法那样直接传给另一个页面,而是交由struts.xml进行处理。struts.xml调用后台action 进行处理后,决定转向那个页面.那么我们如何编写以及在哪里放置struts.xml呢?

我们要将struts.xml放置在Source Packagesdefault package包下。如图

让Struts2 在NetBeans 6中安家

给文件命名为struts

让Struts2 在NetBeans 6中安家

接下来点击struts.xml进行编写,之前我们要在xml文档的头部加入

让Struts2 在NetBeans 6中安家

让Struts2 在NetBeans 6中安家<!DOCTYPEstrutsPUBLIC
让Struts2 在NetBeans 6中安家"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
让Struts2 在NetBeans 6中安家"http://struts.apache.org/dtds/struts-2.0.dtd"
>
让Struts2 在NetBeans 6中安家

把原来的<root></root>删除。换成<struts></struts> 输入”<p” 然后 Ctrl+Space

让Struts2 在NetBeans 6中安家

这个时候 NetBeans已经完全认识了Struts2(估计它们已经成为好伙伴了)。继续编写,如果你怕出错,或者不愿意太麻烦,按 Ctrl+Space. Netbeans 6.1 会为你解决很多问题。(不得不说的是,NetBean6.0以后的版本在代码完成方面有了一个很大的提高,速度和智能两方面都值得称赞)一路编写下来。以下是编好的代码:

让Struts2 在NetBeans 6中安家<struts>
让Struts2 在NetBeans 6中安家
<packagename="xhinker"extends="struts-default">
让Struts2 在NetBeans 6中安家
<actionname="hello"class="cn.xhinker.struts2.HelloAction">
让Struts2 在NetBeans 6中安家
<result>/helloPage.jsp</result>
让Struts2 在NetBeans 6中安家
</action>
让Struts2 在NetBeans 6中安家
</package>
让Struts2 在NetBeans 6中安家
</struts>
让Struts2 在NetBeans 6中安家

文档中 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类。

让Struts2 在NetBeans 6中安家

如下填写:

让Struts2 在NetBeans 6中安家

HelloAction 继承ActionSupport

让Struts2 在NetBeans 6中安家packagecn.xhinker.struts2;
让Struts2 在NetBeans 6中安家
importcom.opensymphony.xwork2.ActionSupport;
让Struts2 在NetBeans 6中安家让Struts2 在NetBeans 6中安家
publicclassHelloActionextendsActionSupport...{
让Struts2 在NetBeans 6中安家}

让Struts2 在NetBeans 6中安家

这个时候有人会问,我如何让NetBeans 帮我override(重写)父类的方法啊?没有这样的按钮啊?不用找了。Ctrl+Space. 您要的重写的方法,八九不离十已经显示在你的面前了:

让Struts2 在NetBeans 6中安家

我们要的就是这个execute()方法。稍微改变一下代码如下所示:

让Struts2 在NetBeans 6中安家让Struts2 在NetBeans 6中安家publicStringexecute()throwsException...{
让Struts2 在NetBeans 6中安家
returnthis.SUCCESS;
让Struts2 在NetBeans 6中安家}

让Struts2 在NetBeans 6中安家

添加一个字符串变量msg 然后让NetBeans 自动生成 setter getter方法。如图在弹出的菜单中选择Encapsulate Field...即可

让Struts2 在NetBeans 6中安家

生成完毕,这个类就编好了,完整的代码为:

让Struts2 在NetBeans 6中安家packagecn.xhinker.struts2;
让Struts2 在NetBeans 6中安家
importcom.opensymphony.xwork2.ActionSupport;
让Struts2 在NetBeans 6中安家让Struts2 在NetBeans 6中安家
publicclassHelloActionextendsActionSupport...{
让Struts2 在NetBeans 6中安家
privateStringmsg="HelloWorld";
让Struts2 在NetBeans 6中安家让Struts2 在NetBeans 6中安家
publicStringexecute()throwsException...{
让Struts2 在NetBeans 6中安家
returnthis.SUCCESS;
让Struts2 在NetBeans 6中安家}

让Struts2 在NetBeans 6中安家
让Struts2 在NetBeans 6中安家让Struts2 在NetBeans 6中安家
publicStringgetMsg()...{
让Struts2 在NetBeans 6中安家
returnmsg;
让Struts2 在NetBeans 6中安家}

让Struts2 在NetBeans 6中安家
让Struts2 在NetBeans 6中安家让Struts2 在NetBeans 6中安家
publicvoidsetMsg(Stringmsg)...{
让Struts2 在NetBeans 6中安家
this.msg=msg;
让Struts2 在NetBeans 6中安家}

让Struts2 在NetBeans 6中安家}

让Struts2 在NetBeans 6中安家

进入下一部分。

六.编写jsp页面

index.jsp中的body标签内加入<a href="hello.action">hello</a>

让Struts2 在NetBeans 6中安家

新建一个hello.jsp页面 添加如图所示的代码:

让Struts2 在NetBeans 6中安家

到此为止,你也该启动那只大花猫 Tomcat了。Build à run

但愿你没有遇到麻烦:-)