MyEclipse8下struts2开发例程及解析

2 篇文章 0 订阅
2 篇文章 0 订阅
环境:MyEclipse Enterprise Workbench  Version: 8.0  Build id: 8.0-20091120
Struts2版本:2.1.8

    MyEclipse8 已经支持struts 2,但是现有的资料包括书籍、视频、网络资料均很少有人介绍在MyEclipse8 环境下的struts 2开发,甚至包括MyEclipse8 自带的帮助文件也是仅介绍其老版本MyEclipse6 开发struts 1.x的操作。本人综合各方面资料,对MyEclipse8 下的struts开发过程进行整理。

1. struts 2 环境搭建

    这是MyEclipse老版本必须做的工作,包括如下3步:

(1)导入Struts2的jar文件(其中,开发一个Struts2至少需要包括:

    struts2-core-2.x.x.jar :Struts2框架核心类库
    xwork-2.x.x.jar:XWork类库,是Struts 2的基础
    ognl-2.x.x.jar:对象图导航语言,用于读写对象属性
    freemarker-2.x.x.jar:struts 2的UI标签的模板
    commons-logging-1.1.x.jar:ASF出的日志包,struts 2使用它来支持Log4J和JDK的日志记录
    commons-fileupload-1.x.x.jar:文件上传组件,Struts 2.1.6版本以上必须加入此文件

(2)编写Struts2的配置文件

(3)在web.xml中加入Struts2 MVC框架启动配置

说了这么多,幸运的是,在MyEclipse8 中,不需要手动做任何工作,就可以包括Struts2框架支持,步骤如下:

(1)创建一个web project:MyStruts2



(2)为工程添加Struts2 框架支持,在工程名MyStruts2上右击,选择“MyEclipse/Add Struts Capabilities ...”



(3)在弹出的对话框中选择,Struts 2.1



(4)点击完成后,可以看到项目目录中多了Struts 2 Core Libraries文件夹,同时src自动生成了struts.xml文件



生成了一个空的struts.xml文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
</struts>

此外:Web-INF下的web.xml中多了以下几行(加入Struts2 MVC框架启动配置):

<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>  
<-- 注:应该将*.action改为/*,才能支持struts2标签 -->
</filter-mapping></web-app>

此时,运行tomcat服务器,在浏览器中输入:http://localhost:8080/MyStruts2/,应该能够正确显示页面,表明添加Struts 2后,没有引起冲突。

总结:在MyEclipse8中对一个项目中添加struts2支持方法非常简单,只需要进行简单设置,不用手动创建配置文件。

2. struts 2 简单用例

示例内容:添加一个action,在其中处理数据,并将结果在页面上进行显示。

2.1 添加一个页面,用于跳转到的位置,如result.jsp,将页面放在WEB-INF/pages/目录下,是为了保证安全,不让用户直接输入网址进入。

2.2 添加action,在struts.xml源文件中右击鼠标,选择MyEclipes/New Action ...



在新弹出的“New Action”对话框里新建一个Package,如下图所示



说明:其中Package的name,相当于java类中的package,而Namespace是一个路径,与Action名称一起组成action的路径,在页面输入时要添加Namespace的路径。

继续添加Action的Name,Class以及Results,如下图所示:



注意:添加Results时,类型选默认,不能选redirect,否则action将不对给页面传参数。当然,如果需要传参,也可以通过在路径后面添加参数的方法把参数带上(见传智播客struts2.1视频教程6),如/WEB-INF/pages/result.jsp?name=${username}。

实际上,这一步修改了struts.xml文件,即帮我们添加了如下代码:

<package name="myactions" namespace="/mypath"
extends="struts-default">
<action name="output" class="com.gzzzz.OutputAction">
<result name="success">/WEB-INF/pages/result.jsp</result>
</action>
</package></struts>

另外,上一步给我们添加了一个Output.java文件,包括OutputAction 类

2.3 添加代码逻辑操作,进入OutputAction类:

public class OutputAction extends ActionSupport {
private String Msg;    // 添加一个变量
public String getMsg() {    // 添加getter
return Msg;
}
/**
* @return
*/
public String execute() {
// TODO Auto-generated method stub
Msg = "results:" + (10 + 20);     // 逻辑运算
return SUCCESS;
}

2.4 在result页面对msg进行显示

<body>
${msg }    // EL表达式
</body>

说明:EL表达式的变量名,要与Action中的getMsg函数名要对应(即将Msg变为msg),而与相关变量名不必保持对应,虽然我们通常这样做。

OK,大功告成!在浏览器出输入:http://localhost:8080/MyStruts2/output.action
很不幸,出错了
还记得我们前面提到的Namespace的作用么?哦,明白了
输入改为:http://localhost:8080/MyStruts2/mypath/output.action
如下,所示,看到了我们想要的结果




参考资料

传智播客struts2.1视频教程
《java web 开发技术大全》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值