• Action的配置


    计应134  徐雪双

    在Struts2中,一个Action类是一个独立的工作单元。一个Action类代表了用户的一次请求或调用,用户的每次请求,都会转到一个相应的Action类里面,由这个Action类来进行处理。简单来说,Action就是用来处理用户请求的对象。

    Action类是Struts2的核心功能,对于开发者而言,使用Struts2就是编写Action类。

    在Struts2中,Action以多种形式存在,例如在Java类充当Action、继承ActionSupper类实现Action接口和Action。

    Struts2最大的特点:Action类可以是一个普通的Java类,实现了与Servlet API的完全分离。它包含了无参数的execute()方法、成员变量及其setter()和getter()方法。

    public class HelloWorld {

      private String message;

      public String getMessage(){

      return message;

    }

    public void setMessage(String message) {

      this.message = message;

    }

    public String execute(){

      if(message.equals(“”)){

      return “error”;

    }else{

      Return “success”;

    }

    }

    }

    Struts2提供了一个com.pensymphony.xwork2.Action接口和实现该接口的execute()方法,该方法为:

    public String execute() throws Exception

    在实际开发中,action类很少直接实现Action接口,通过继承ActionSupper来实现Action是最常用的方法,ActionSupper实现了Action接口,还实现了Validateable接口、ValidationAware接口、TextProvider接口等,提供了输入验证、国际化、execute等常用方法,使得用户在编写Action时代码更加简单。选择从ActionSupport继承,可以简化action的定义。

    然而Action要正确运行,则需要在Struts.xml中配置才可以使用。而struts.xml文件是Struts应用中一个非常重要的核心配置文件,要负责管理业务控制器Action。

    <package>元素:Struts2通过包来管理Action、拦截器等核心组件。它把逻辑上相关的一组Action、Result、Intercepter等元素封装成一个独立的模块,简称为包。package可以继承其他的package,也可作为父包被其他的package继承。Package元素的属性如下:

    name:包名,作为其他包引用本包的标识符,该属性必须配置。

    extends:用于继承其他的包,后面配置的是被继承的包的名称,该属性为可选

    namespace:包的命名空间,该属性为可选。同一命名空间不能有同名的Action。namespace可防止action重名的冲突,因在配置了namespace后,在访问action时就需添加namespace来作为action的前缀。若没有配置namespace,则表示是默认的namespace,在访问时就不需添加namespace前缀。

    abstract:设置为抽象包,也就是不能包含Action的定义,该属性为可选。可被其他包继承,因此里面可定义其他包所需元素,如ResultType、Interceptor等。

    配置时需注意:

    <action>元素时<package>元素的子元素,应配置在<package>元素里面

    <package>元素可以把

    <action>元素需配置name和class属性,其中name是必须的

    <action>元素可以包含其他的子元素:<param>、<result>、<interceptor-ref>

  • 相关阅读:
    python实例26[查询修改文件的属性]
    [SCM]源码管理 VisualSVN Server+TortoiseSVN
    持续集成之“依赖管理”
    Spoon:在“云”上运行桌面应用程序
    数字签名的验证
    判断Linux/Unix为32位或64位
    持续集成理论和实践的新进展
    [SCM]源码管理 SVN Server
    [BuildRelease Management]Parabuild
    为VM增加磁盘空间
  • 原文地址:https://www.cnblogs.com/xu2shuang97664/p/4568292.html
Copyright © 2020-2023  润新知