快速业务通道

Struts 2.0的Action讲解 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

Struts 2.0的Action讲解

时间:2011-06-29 BlogJava Max

有Struts 1.x经验的朋友都知道Action是Struts的核心内容,当然Struts 2.0也不例外。不过,Struts 1.x与Struts 2.0的Action模型很大的区别。

Struts 1.x Stuts 2.0
接口 必须继承org.apache.struts.action.Action或者其子类 无须继承任何类型或实现任何接口
表单数据 表单数据封装在FormBean中 表单数据包含在Action中,通过Getter和Setter获取

虽然,理论上Struts 2.0的Action无须实现任何接口或继承任何类型,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法。具体的实现,如例1所示:

<% @ page contentType = " text/html; charset=UTF-8 " %> <% @ taglib prefix = " s " uri = " /struts-tags " %> < html > < head >   < title > Hello World! </ title > </ head > < body >   < h2 >< s:property value ="message" /></ h2 > </ body > </ html >

例1 HelloWorld.jsp

package tutorial; import java.text.DateFormat; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; public class HelloWorld extends ActionSupport {    private String message;    public String getMessage() {      return message;   }   @Override    public String execute() {     message = " Hello World, Now is " + DateFormat.getInstance().format( new Date());      return SUCCESS;   } }

例1 classes/tutorial/HelloWorld.java

< package name ="ActionDemo" extends ="struts-default" >   < action name ="HelloWorld" class ="tutorial.HelloWorld" >     < result > /HelloWorld.jsp </ result >   </ action > </ package >

Struts 2.0的Action讲解(2)

时间:2011-06-29 BlogJava Max

例1 classes/struts.xml中HelloWorld Action的配置

在浏览器地址栏中键入http://localhost:8080/Struts2_Action/HelloWorld.action,可以看到如图1所示页面。

Struts 2.0的Action讲解 - 编程入门网

图1 HelloWorld输出页面

参考JavaDoc,可知ActionSupport类实现了接口:

com.opensymphony.xwork2.Action com.opensymphony.xwork2.LoaleProvider com.opensymphony.xwork2.TextProvider com.opensymphony.xwork2.Validateable com.opensymphony.xwork2.ValidationAware com.uwyn.rife.continuations.ContinuableObject java.io.Searializable java.lang.Cloneable

默认情况下,当请求HelloWorld.action发生时,Struts运行时(Runtime)根据struts.xml里的Action映射集(Mapping),实例化tutoiral.HelloWorld类,并调用其execute方法。当然,我们可以通过以下两种方法改变这种默认调用。这个功能(Feature)有点类似Struts 1.x中的LookupDispathAction。

在classes/sturts.xml中新建Action,并指明其调用的方法;

访问Action时,在Action名后加上“!xxx”(xxx为方法名)。

实现方法请参考例2:

在classes/tutorial/HelloWorld.java中加入以下方法:

public String aliasAction() {   message ="自定义Act

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号