快速业务通道

Struts2教程--第一章 搭建Struts2开发环境 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
在列表中,在“Struts2”前的复选框上打勾,点击“Finish”完成。如图12。

Struts2教程--第一章 搭建Struts2开发环境 - 编程入门网

(图12)

Struts2教程--第一章 搭建Struts2开发环境(8)

时间:2011-07-01

7.将Struts2所带的过滤器org.apache.struts2.dispatcher.FilterDispatcher配置到工程的web.xml文件中,默认情况下,该过滤器拦截请求字符串中以.action结尾的请求,并将该请求委托给指定的Action进行处理。最直观的表现就是调用Action的execute()方法。代码如下:

代码清单1:web.xml

  <filter>     <filter-name>struts2</filter-name>     <filter-class>       org.apache.struts2.dispatcher.FilterDispatcher     </filter-class>   </filter>   <filter-mapping>     <filter-name>struts2</filter-name>     <url-pattern>/*</url-pattern>   </filter-mapping>

注:在Sturts1.X中,该行为由Servlet完成。

8.创建包com.lizanhong.action,并在该包中创建HelloWorldAction类,该类继承自com.opensymphony.xwork2.ActionSupport。理论上,Action可以不继承任何类或实现任何接口,以增强程序的可测试性,这也是和Struts1.X不同的地方。但是,继承自ActionSupport可以减少更多的编码工作。

在ActionSupport中,定义了方法execute(),当用户向该Action发送请求时,会自动调用。程序代码如下:

代码清单2:HelloWorldAction.java

package com.lizanhong.action; import com.opensymphony.xwork2.ActionSupport; publicclass HelloWorldAction extends ActionSupport {   @Override   public String execute() throws Exception {     System.out.println("Action执行了。");     returnSUCCESS;   } }

注:ActionSupport是Struts2提供的类,功能类似于Struts1.x中的Action类,该类封装了几个有用的功能,比如:

getText():从资源文件中获取国际化消息。

addFieldError():验证输入未通过时添加错误消息,支持国际化。

execute():该方法一般会被重写,当客户端向Action发送请求时,会调用此方法。

总结起来,该类主要提供了错误消息的支持和国际化支持。

在工程类路径下创建struts.xml文件,这是Struts2的配置文件,类似于Struts1.x中的struts-config.xml,在struts.xml文件中可以配置Action、Bean、Interceptor等组件。

Struts2教程--第一章 搭建Struts2开发环境(9)

时间:2011-07-01

代码清单3:struts.xml

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>   <include file="struts-default.xml"></include>      <package name="a" extends="struts-default">     <action name="helloworld" class="com.lizanhong.action.HelloWorldAction">       <result>/result.jsp</result>     </action>   </package> </struts>

注:WEB应用程序的类路径是指WEB-INF/classes目录,在Eclipse中,创建在src目录下的文件最终发布后会自动复制到WEB-INF/classes目录下。

代码清单3中涉及到很多标签,以下是简单的解释:

标签名称 说明
include 包含其他xml文件,在示例中,这意味着struts.xml可以访问定义在struts-default.xml文件中的组件。

该元素可以使得Struts2定义多个配置文件,“分而治之”。

要注意的是,任何一个struts2配置文件都应该和struts.xml有相同的格式,包括doctype,并且可以放在类路径下的任何地方。

package 为Action或截拦器分组。

name:名称,必填项,名称自定义,没特别要求。方便别的package引用。

extends:package能继承其他的package,即通过该属性实现,值为另一个package的name。

在示例中,extends =”struts-default”是从struts-default.xml中继承的。

action 定义Action,name属性为访问时用到的名称,class属性是Action的类名。
result 根据Action的返回值定义页面导航。

Action的预定义的返回值有:

String SUCCESS = "success";

String NONE  = "none";

String ERROR  = "error";

String INPUT  = "input";

String LOGIN  = "login";

比如,当Action返回SUCCESS时希望转到ok.jsp页面,则可以这样写:

<result name=”success”>ok.jsp</result>

其中,name的缺省为success。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号