让Struts2 在NetBeans 6中安家——在 NetBeans 6 中使用 Struts2

让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  

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

时间: 2024-10-24 00:22:12

让Struts2 在NetBeans 6中安家——在 NetBeans 6 中使用 Struts2的相关文章

让Struts2 在NetBeans 6中安家

让Struts2 在NetBeans 6中安家                           -- 在 NetBeans 6 中使用 Struts2 前言:NetBeans 6 和 Struts2 每次使用一种java编辑器或IDE(如eclipse)一个多小时后,总是发现自己已经在NetBeans里敲代码了.至于Struts2,这是一个融合了WebWork 和Struts1.X 的基于MVC的Web开发框架,使用相当广泛.   在当前的NetBeans6.1中你还找不到Struts2的影

请问一个web工程中,是否可同时使用struts1和struts2?

问题描述 请问一个web工程中,是否可同时使用struts1和struts2? 请问一个web工程中,是否可同时使用struts1和struts2? 解决方案 理论上可以,但是要非常小心,比如重名的类型,还有url映射和配置文件.建议你独立成两个网站,互相调用. 解决方案二: 最好是不要同时使用, 很容易出错. 解决方案三: 应该可以,你确定这样用了方便以后维护吗? 解决方案四: struts2不是夸张1吗,有需要给自己找麻烦吗 解决方案五: 在原来的struts1的项目上需要新功能,你想用st

javaweb-在mac OSX 中 我的netbeans 无法正确的把jsp(使用form) 中文字符传进 servlet

问题描述 在mac OSX 中 我的netbeans 无法正确的把jsp(使用form) 中文字符传进 servlet 在mac OSX 中 我的netbeans 无法正确的把jsp(使用form) 中文字符传进 servlet 我试着打印出传进servlet得中文字符 都变成了问号, 可是我把项目抄进windows 的系统 却可以运行. 有人知道为什么吗

下拉框中值的处理 struts1.x或struts2 拜托各位高手!

问题描述 1.将数据库中查询出来的数据(Key/value),取到数据后让后以键.值方式存贮到下拉选择框中,怎么进行处理!(诚心希望各位大侠给出详细思路及代码书写)2.在业务逻辑中怎么处理数据库表中的数据部存在的情况!(用sql语句查询是否存在数据后,然后再业务层处理?)思路及代码!谢谢各位大侠了 解决方案 解决方案二:1.<selectname="key"><c:forEachitems="${dataList}"var="data&q

电脑中怎么将360浏览器中收藏的网页导入到Edge浏览器中

  电脑中怎么将360浏览器中收藏的网页导入到Edge浏览器中          1.打开360浏览器,点击左上角的"收藏"; 2.打开下拉菜单后点击"导入/导出"; 3.在"导出收藏夹"中点击"导出到IE浏览器"; 4.稍等片刻后会提示导出成功,点击确定,这样,360浏览器中收藏的网页就导入到IE浏览器中了; 5.打开Edge浏览器,点击打开右上角的菜单; 6.点击"导入收藏夹"按钮; 7.勾选"

jsp-JSP中编写JS代码过程中,调用了一个JSP表达式,发现一个问题,麻烦各位大神解答

问题描述 JSP中编写JS代码过程中,调用了一个JSP表达式,发现一个问题,麻烦各位大神解答 背景: 楼主使用Myelipse新建了一个Web项目,在编写一个JSP文件的时候遇到一个问题,首先是使用了img,并且写了一个事件,代码如下: <imgclass="poke" src="poke/back.jpg" title="hit" id="play_id_3" onClick="change_pic()&qu

asp.net-ASP.NET web项目中GridView选中行样式中如何切换选择按钮的图标?

问题描述 ASP.NET web项目中GridView选中行样式中如何切换选择按钮的图标? 我用的ASP.NET 4.0开发的网站项目,GridView控件中选中行的样式,启用控件自带的选择按钮, 想实现选中一行,该行的选择图标按钮会自动改变图标,如何才能实现动态更换CommandField的SelectImageUrl? 在SelectedRowStyle中指定cssclass可以实现吗?这种前台的样式脚本中,能获取GridView的CommnadField控件对象吗? 如有成功的同行能够解答

以前收集的一些资料---如何在ASP中通过ODBC调用Excel中的数据

excel|odbc|数据                如何在ASP中通过ODBC调用Excel中的数据    在ASP中通过ODBC调用Excel中的数据方式和普通的通过ODBC调用数据库的方式有一些不同的地方.下面将介绍如何通过ODBC在ASP中使用Excel的数据.    在使用的过程中,要注意的是你需要使用的ODBC驱动为:Microsoft ODBC Driver for Excel. 下面给出一个例子来具体说明如何调用的过程:1.在Excel的电子表格中新建一个叫Range的表单a

数据库 删除-为什么我删除了listview中的值,数据库中没删除呢

问题描述 为什么我删除了listview中的值,数据库中没删除呢 string connstr = ""Provider=Microsoft.Jet.OleDb.4.0;""; connstr += @""Data Source=D:Merger20150208_caohuanGEARCNC.mdb""; OleDbConnection tempconn = new OleDbConnection(connstr);//连接数