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日

相关文章

  • JSP登录中Session的用法实例详解

    JSP登录中Session的用法实例详解 什么是Session Session 是在服务器端存储用户信息的最常用的方式之一。它能够跨越不同的请求并在整个会话期间保持这些信息。Session 变量存储在服务器上,当用户浏览网站时,它们的信息会被传输到服务器进行处理并返回响应页面。在 Java 中可以使用 HttpSession 对象来操作 Session。 S…

    Java 2023年6月15日
    00
  • spring boot学习笔记之操作ActiveMQ指南

    下面是对“Spring Boot学习笔记之操作ActiveMQ指南”的详细讲解。 一、前言 ActiveMQ是一个流行的消息队列中间件,它支持多种协议和语言,并且具有可扩展性、高可用性、高吞吐量等特点。本文将介绍如何在Spring Boot项目中使用ActiveMQ进行消息传递,以及使用示例说明。 二、配置ActiveMQ 首先,在Spring Boot项目…

    Java 2023年6月2日
    00
  • 21个常用的apache .htaccess文件配置技巧分享

    标题 21个常用的apache .htaccess文件配置技巧分享 简介 Apache的.htaccess文件是一种非常有用的文件,它可以帮助你更好地控制网站的访问和功能。在这篇文章中,我们将介绍21个常用的.htaccess文件配置技巧,并给出示例说明。如果你是一个网站管理员,这些技巧将帮助你更好地管理你的网站。 常用的.htaccess文件配置技巧 以下…

    Java 2023年6月16日
    00
  • SpringBoot接口接收json参数解析

    接下来我将为你详细讲解SpringBoot接口接收Json参数解析的完整攻略,包含以下流程: 创建SpringBoot项目 定义数据模型 定义控制器 确定请求方式 接收与解析Json参数 处理请求数据 接下来将逐步讲解每一个步骤。 1. 创建SpringBoot项目 我们首先需要创建一个SpringBoot项目,可以使用Spring官方提供的Spring I…

    Java 2023年5月20日
    00
  • Struts2 通过ognl表达式实现投影

    下面是详细的讲解: 概述 Struts2 是一个优秀的 Java Web 应用框架,它的表单标签库可以很方便地实现表单的输入和输出。但有时候,我们也需要一些特殊的操作,比如使用投影(projection)来显示指定的数据,此时,ognl 表达式就可以派上用场了。 步骤 1. 配置Struts2引用ognl 在 struts.xml 文件中配置如下: <…

    Java 2023年5月20日
    00
  • 通过大白话理解微信小程序的授权登录

    下面详细讲解一下“通过大白话理解微信小程序的授权登录”的完整攻略。 什么是微信小程序的授权登录? 微信小程序的授权登录是指通过用户点击同意按钮,将微信用户的个人信息授权给小程序,从而实现小程序与微信用户的关联。通常在小程序的中会出现授权登录的弹窗,询问用户是否授权登录,如果用户同意,小程序就能够获取到用户的微信个人信息。 微信小程序的授权登录步骤 微信小程序…

    Java 2023年5月23日
    00
  • JavaScript解析JSON数据示例

    下面是关于“JavaScript解析JSON数据示例”的完整攻略。 什么是JSON数据格式 JSON指的是JavaScript对象表示法(JavaScript Object Notation),它是一种轻量级的数据交换格式。它易于人们阅读和编写,同时也易于机器解析和生成。在很多网站中,JSON已成为主流的数据格式之一。 具体来说,JSON数据格式是由一系列键…

    Java 2023年5月26日
    00
  • Java 反射(Reflect)详解

    Java 反射(Reflect)详解 什么是反射? 反射是指Java程序可以检查自身的能力,并且在运行时获取和操作自身的类、接口、方法和属性等信息。Java反射提供了一种机制使得一个程序在运行期间可以获取自身的信息并且可以操作该类的内部属性、方法和构造方法。 反射的作用 反射主要有如下应用场景: 动态创建对象或获取已有对象的信息; 调用对象的方法; 访问和修…

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