Struts2学习笔记(5)-参数传递方法

下面给出Struts2学习笔记(5)-参数传递方法的完整攻略。

1. 参数传递方法

Struts2框架提供了多种参数传递方法,包括:

  • 基于动态属性的参数传递方法
  • 基于XLST的参数传递方法
  • 基于注解的参数传递方法
  • 基于拦截器的参数传递方法

1.1 基于动态属性的参数传递方法

在Struts2中,可以通过设置动态属性来进行参数传递。需要为Action类的变量提供setter和getter方法,这样在Struts2中就可以使用该变量。例如:

public class DynamicPropertyAction extends ActionSupport {
    private String name;
    private String address;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    public String execute() {
        return SUCCESS;
    }
}

在该示例中,可以通过在URL中传递name和address参数的值来进行参数传递。

1.2 基于XLST的参数传递方法

除了基于动态属性的参数传递方法,Struts2还支持基于XLST的参数传递方法。通过处理XLST文件,就可以将动态属性的传递方式改为基于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>
    <action name="XSLDynamicPropertyAction" class="com.example.action.XSLDynamicPropertyAction">
        <result name="success">/result.jsp</result>
    </action>
</struts>

1.3 基于注解的参数传递方法

在Struts2中,可以使用注解来进行参数传递。通过使用@Param注解,就可以设置Action类的变量来接收参数值。

public class AnnotationAction extends ActionSupport {
    @Param(value = "userName", required = true)
    private String name;
    @Param(value = "userPassword", required = true)
    private String password;

    public String execute() {
        return SUCCESS;
    }
}

在该示例中,可以在URL中传递userName和userPassword的值来进行参数传递。

1.4 基于拦截器的参数传递方法

Struts2中还提供了基于拦截器的参数传递方法。通过拦截器,可以在请求处理前或请求处理后添加一些额外的处理逻辑,以实现参数传递的目的。

<?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>
    <package name="example" namespace="/" extends="struts-default">
        <interceptors>
            <interceptor name="ParamInterceptor" class="com.example.interceptor.ParamInterceptor"/>
            <interceptor-stack name="ParamStack">
                <interceptor-ref name="ParamInterceptor"/>
                <interceptor-ref name="defaultStack"/>
            </interceptor-stack>
        </interceptors>

        <action name="paramAction" class="com.example.action.ParamAction">
            <interceptor-ref name="ParamStack"/>
            <result name="success">/result.jsp</result>
        </action>
    </package>
</struts>

在该示例中,使用拦截器ParamInterceptor来处理参数传递,在Action调用execute()方法之前将值设置于真正的实例中。

2. 示例

接下来给出两个基于动态属性的参数传递的示例。

示例 1:

public class DynamicPropertyAction extends ActionSupport {
    private String name;
    private String address;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    public String execute() {
        return SUCCESS;
    }
}

在该示例中,可以通过URL /DynamicPropertyAction.action?name=John&address=Beijing 进行参数传递。

示例 2:

public class DynamicPropertyAction extends ActionSupport {
    private String name;
    private String address;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    public String execute() {
        return SUCCESS;
    }
}

在该示例中,可以通过URL /DynamicPropertyAction.action?name=John&address=Beijing 进行参数传递。

以上就是Struts2学习笔记(5)-参数传递方法的完整攻略,包含了基于动态属性、XLST、注解、拦截器的参数传递方法,还有两个基于动态属性的示例供参考。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Struts2学习笔记(5)-参数传递方法 - Python技术站

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

相关文章

  • java实现人员信息管理系统

    实现人员信息管理系统的完整攻略,可以分为如下几个步骤: 1.需求分析 首先需要明确人员信息管理系统需要实现的功能和需求。例如,需要实现的功能包括添加人员信息、查询人员信息、修改人员信息、删除人员信息等。 2.数据库设计 设计好人员信息管理系统所需的数据库结构,确定表格和字段。根据需求分析,表格可以分为人员信息表、部门信息表等。字段包括姓名、性别、年龄、电话、…

    Java 2023年5月23日
    00
  • Spring循环依赖的解决办法,你真的懂了吗

    Spring循环依赖是指两个或多个Bean之间相互依赖导致Bean的初始化出现死循环的情况。这种情况下,Spring无法完成Bean的初始化,进而导致程序无法启动。在开发过程中,循环依赖是比较常见的问题。下面是解决Spring循环依赖问题的完整攻略。 1.问题描述 Bean A和Bean B相互依赖,Bean A依赖于Bean B,同时Bean B依赖于Be…

    Java 2023年5月31日
    00
  • linux中Jetty的安装和配置方法

    Linux中Jetty的安装和配置方法 Jetty简介 Jetty是用Java语言编写的,基于Servlet容器技术的Web服务器,由Eclipse基金会支持和开发。Jetty是一款轻量级的servlet容器,具有出色且极具可扩展性的Web服务器性能。Jetty支持基于HTTP/2、WebSocket、Java Servlet、Apache Thrift、H…

    Java 2023年6月16日
    00
  • JSP教程(六)-怎么在JSP中跳转到别一页面

    下面是关于在JSP页面中跳转到另一页面的完整攻略。 1. 使用HTML的超链接 在JSP页面中跳转到另一个页面可以使用HTML的超链接。在a标签中使用href属性来指定目标页面的URL,例如: <a href="target.jsp">跳转到目标页面</a> 当用户单击链接时,就会跳转到目标页面。注意,这种方式的跳…

    Java 2023年6月15日
    00
  • Java利用for循环输出空心三角形、空心菱形和空心矩形的代码

    让我们来详细讲解Java利用for循环输出空心三角形、空心菱形和空心矩形的代码。 输出空心三角形 首先,我们要理解空心三角形的形状,它是由多个递进的空格和星号组成的,而每行的符号数都是依次递增或递减的。 下面是一个输出空心三角形的示例代码: public class HollowTriangle { public static void main(Strin…

    Java 2023年5月26日
    00
  • java中File类应用遍历文件夹下所有文件

    下面是关于“java中File类应用遍历文件夹下所有文件”的攻略: 1. 使用递归法遍历文件夹下所有文件 如果需要遍历一个文件夹下所有文件,可以使用递归法来实现。首先使用File类获取到当前目录文件夹下的所有文件和文件夹,如果是文件就打印文件名,否则则递归调用本身遍历文件夹。 示例代码如下: import java.io.File; public class…

    Java 2023年5月19日
    00
  • Maven生命周期和及插件原理用法详解

    Maven生命周期和插件原理用法详解 什么是Maven生命周期? Maven生命周期指的是一些固定的、预定义的构建顺序,Maven通过定义一系列阶段(Phase),每个阶段表示一些特定的任务,它们按照一定的顺序执行,最终完成项目构建。Maven生命周期包括三个阶段:- 清理周期:此周期主要是负责清理相关的上一次构建的内容- 默认周期:此周期是最主要的构建阶段…

    Java 2023年5月20日
    00
  • SpringBoot项目集成依赖Mybatis步骤

    下面是SpringBoot项目集成依赖Mybatis步骤的完整攻略。 1. 引入Mybatis相关依赖 在pom.xml文件中添加以下依赖,其中包括Mybatis核心依赖 mybatis-spring-boot-starter ,Mysql驱动包mysql-connector-java以及Mybatis分页插件pagehelper。 <!– myba…

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