Struts 2 实现Action的几种方式

Struts 2 实现 Action 的几种方式包括以下几种:基于方法、基于类、基于接口、基于注解,以及自定义 Action。

基于方法

这种方式是在 Action 类中定义不同的方法来处理不同的请求,例如:

public class UserAction{
    public String list(){
        // 处理列表请求
        return "list";
    }
    public String add(){
        // 处理添加请求
        return "add";
    }
    public String delete(){
        // 处理删除请求
        return "delete";
    }
}

在 Struts 2 中,可以通过类似如下的方式进行配置:

<action name="userAction_*" class="com.example.UserAction" method="{1}">
    <result name="list">/user/list.jsp</result>
    <result name="add">/user/add.jsp</result>
    <result name="delete">/user/delete.jsp</result>
</action>

请求的 URL 格式为:

/userAction_list.do 执行 UserAction 类的 list 方法
/userAction_add.do 执行 UserAction 类的 add 方法
/userAction_delete.do 执行 UserAction 类的 delete 方法

基于类

这种方式是在 Action 类中实现不同的接口来处理不同的请求,例如:

public class ListAction implements Action{
   public String execute() throws Exception{
       // 处理列表请求
       return "list";
   }
}
public class AddAction implements Action{
   public String execute() throws Exception{
       // 处理添加请求
       return "add";
   }
}

在 Struts 2 中,可以通过如下的方式进行配置:

<action name="list" class="com.example.ListAction">
    <result name="list">/list.jsp</result>
</action>
<action name="add" class="com.example.AddAction">
    <result name="add">/add.jsp</result>
</action>

请求的 URL 格式为:

/list.do 执行 ListAction 类的 execute 方法
/add.do 执行 AddAction 类的 execute 方法

基于接口

这种方式是定义一个接口来规定 Action 类必须实现的方法,例如:

public interface BaseAction{
   public String execute() throws Exception;
}
public class ListAction implements BaseAction{
   public String execute() throws Exception{
       // 处理列表请求
       return "list";
   }
}
public class AddAction implements BaseAction{
   public String execute() throws Exception{
       // 处理添加请求
       return "add";
   }
}

在 Struts 2 中,可以使用如下配置:

<package name="example" namespace="/" extends="struts-default">
   <action name="list" class="com.example.ListAction" implements="BaseAction">
       <result name="list">/list.jsp</result>
   </action>
   <action name="add" class="com.example.AddAction" implements="BaseAction">
       <result name="add">/add.jsp</result>
   </action>
</package>

请求的 URL 格式为:

/list.do 执行 ListAction 类的 execute 方法
/add.do 执行 AddAction 类的 execute 方法

基于注解

这种方式是使用 Struts 2 的注解来标记方法实现不同的请求,例如:

@Namespace("/")
@Action(value="list",results={@Result(name="list",location="/list.jsp")})
public class ListAction extends ActionSupport{
   public String execute() throws Exception{
       // 处理列表请求
       return "list";
   }
}

在 Struts 2 中,可以使用如下配置:

<package name="example" namespace="/" extends="struts-default">
   <action name="list" class="com.example.ListAction">
       <result name="list">/list.jsp</result>
   </action>
</package>

请求的 URL 格式为:

/list.do 执行 ListAction 类的 execute 方法

自定义 Action

自定义 Action 方式是定义自己的 Action 类,实现特定的逻辑,例如:

public class MyAction extends ActionSupport implements ServletRequestAware{
   private HttpServletRequest request;
   public void setServletRequest(HttpServletRequest request){
       this.request=request;
   }
   public String execute() throws Exception{
       // 处理请求
       return SUCCESS;
   }
}

在 Struts 2 中,可以使用如下配置:

<package name="example" namespace="/" extends="struts-default">
   <action name="myAction" class="com.example.MyAction">
       <result name="success">/success.jsp</result>
       <result name="error">/error.jsp</result>
   </action>
</package>

请求的 URL 格式为:

/myAction.do 执行 MyAction 类的 execute 方法

以上就是 Struts 2 实现 Action 的几种方式的详细介绍,希望对您有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Struts 2 实现Action的几种方式 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 如何解决org.apache.jasper.JasperException:无法为JSP编译类详解

    当我们在使用JSP技术开发Web应用程序时,可能会遇到“org.apache.jasper.JasperException: 无法为JSP编译类”的错误。该错误通常是由于Tomcat服务器无法编译JSP文件而引起的。下面是如何解决这个常见问题的完整攻略。 删除缓存文件 Tomcat服务器会将JSP文件编译成Java类并缓存在一个特定的目录中。如果在编译过程中…

    Java 2023年6月15日
    00
  • 一文详解Springboot中filter的原理与注册

    接下来我将为大家详细讲解“一文详解Springboot中filter的原理与注册”的完整攻略。 什么是Filter Filter是Servlet规范中的一部分。Filter主要用于对请求进行过滤、处理和转换,比如可以进行身份验证或者对请求进行字符编码处理等等。 Springboot框架中也提供了Filter的机制,并且相比于Servlet规范中的Filter…

    Java 2023年5月20日
    00
  • java实现文件读写与压缩实例

    Java实现文件读写与压缩实例 文件读取 Java中可以通过File类和FileInputStream类来实现文件读取。其中,File类用于表示文件对象,而FileInputStream类用于读文件的数据流。 下面是一个简单的文件读取的示例代码,读取指定路径下的txt文件: import java.io.File; import java.io.FileIn…

    Java 2023年5月20日
    00
  • SSH框架网上商城项目第1战之整合Struts2、Hibernate4.3和Spring4.2

    我们来讲解一下“SSH框架网上商城项目第1战之整合Struts2、Hibernate4.3和Spring4.2”的完整攻略。 简介 SSH框架是指Struts2、Hibernate、Spring这三个开源框架的组合,是经典的Java Web框架。整合这三个框架可以让项目的开发更高效、更具可维护性。 本文将讲解如何将这三个框架整合在网上商城项目中。 整合步骤 …

    Java 2023年5月19日
    00
  • springboot2.2.2集成dubbo的实现方法

    Spring Boot2.2.2集成Dubbo的实现方法 Dubbo是一款高性能、轻量级的开源RPC框架,可以用于构建分布式服务架构。在Spring Boot2.2.2中,我们可以使用Dubbo来实现分布式服务。本文将详细讲解Spring Boot2.2.2集成Dubbo的实现方法,并提供两个示例。 1. 集成Dubbo 以下是集成Dubbo的基本流程: 在…

    Java 2023年5月15日
    00
  • 一文吃透Elasticsearch

    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址 如果访问不了Github,可以访问gitee地址。 gitee地址 跟大家分享Elastic…

    Java 2023年4月17日
    00
  • 深入分析Java异常

    深入分析Java异常攻略 了解Java异常 Java中的异常是指程序在执行过程中出现了错误,导致程序无法继续执行或者执行结果不正确的情况。Java使用异常来处理这些错误,使程序能够更好地处理错误情况并提供更好的用户体验。Java中的异常分为两类:检查异常和非检查异常。 检查异常 检查异常是指在编译时就可以检测到的异常,程序在编译时必须显式地处理这些异常。常见…

    Java 2023年5月26日
    00
  • Java中Date和Calendar常用方法

    Java中Date和Calendar常用方法 在Java中,Date和Calendar是常见的时间处理类。下面针对这两个类的常用方法进行讲解,帮助大家更好地了解和使用它们。 Date类常用方法 1. 获取当前时间 使用Date类的无参构造方法可以获取当前时间。 Date date = new Date(); System.out.println(date);…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部