struts中动态方法调用使用通配符

在Struts框架中,可以通过动态方法调用使用通配符的方式,实现对请求URL的自动解析,从而找到对应的Action类及其方法进行处理。

以下是使用通配符的完整攻略:

1. 配置struts.xml

在struts.xml中,可以配置动态方法调用的命名空间及通配符等参数。如下所示:

<package name="example" namespace="/" extends="struts-default">
    <action name="/*/list" method="{1}List" class="com.example.action.{1}Action">
        <result name="success">/list.jsp</result>
    </action>
</package>

该配置的意义是在命名空间/下,匹配以/list结尾的请求URL,并根据通配符*匹配对应的Action类名。同时,method属性的值为{1}List,表示调用Action类中的名称为{1}List的方法进行处理。

2. 编写Action类

在编写Action类时,可以根据配置中的通配符,定义与URL对应的方法。如上面的配置中,URL中的*将对应到Action类名,如example。

package com.example.action;

public class ExampleAction {
    public String exampleList() {
        // 处理方法
        return "success";
    }
}

在以上示例中,对应的URL为/example/list,因为*匹配了Example,method属性的值也为exampleList,所以调用的是ExampleAction类中的exampleList方法。

3. 运行测试

在编译部署好应用后,在浏览器中输入匹配规则的URL,即可自动调用对应的方法进行处理。

例如,通过URL访问/example/list,即可自动调用ExampleAction类中的exampleList方法进行处理,并返回指定的结果页面。

另一种示例是:在配置文件中配置通配符匹配多个参数,如下:

<action name="/*/view/*" method="{1}View" class="com.example.action.{1}Action">
    <param name="id">{2}</param>
    <result name="success">/view.jsp</result>
</action>

以上配置的意义是在命名空间/下,匹配以/view结尾的请求URL,并根据通配符匹配对应的Action类名。同时,method属性的值为{1}View,表示调用Action类中的名称为{1}View的方法进行处理。另外,再次匹配到的是请求URL中的参数,通过param标签的name属性指定。

package com.example.action;

public class ExampleAction {
    public String exampleView(String id) {
        // 处理方法
        return "success";
    }
}

在以上示例中,对应的URL为/example/view/123,因为匹配了Example,method属性的值为exampleView,再次匹配到了请求URL中的参数123,所以调用的是ExampleAction类中的exampleView方法,并将参数传入。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts中动态方法调用使用通配符 - Python技术站

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

相关文章

  • Java基础学习笔记之数组详解

    Java基础学习笔记之数组详解 什么是数组? 数组是Java中最常用的数据结构之一,它是一组相同类型的数据的有序集合,每个数据被称为一个数组元素。是一维数组或多维数组(嵌套数组)。 如何定义数组? 定义数组的语法如下: 数据类型[] 数组名称 = new 数据类型[数组长度]; 其中, 数据类型是指数组中存储元素的类型,数组名称是取自己喜欢的名称,数组长度是…

    Java 2023年5月26日
    00
  • java 获取冒号后面的参数(正则)实现代码

    获取冒号后面的参数可以使用正则表达式进行匹配。以下是一个实现代码的完整攻略: 首先,我们需要从文本中匹配出所有的冒号后面的参数,可以使用正则表达式来完成。Java中使用Pattern类和Matcher类来完成正则表达式的匹配。 正则表达式的模式应该为冒号后面的任意字符,可以使用“:.+”表示,其中“:”表示冒号,“.”表示匹配任意字符,“+”表示匹配前面的字…

    Java 2023年6月15日
    00
  • Spring security认证两类用户代码实例

    下面是详细讲解“Spring security认证两类用户代码实例”的完整攻略。 1. Spring Security认证两类用户 Spring Security可以认证两类用户:前台用户和后台用户。在实际开发中,这两类用户需要分别进行认证,才能保证系统的安全性。 1.1 前台用户 前台用户是指普通用户,通常需要进行注册、登录等操作。Spring Secur…

    Java 2023年5月20日
    00
  • 5分钟快速上手Spring Boot

    5分钟快速上手Spring Boot 简介 Spring Boot是一个快速开发框架,可以让开发者快速地创建基于Spring的应用程序。通过集成常用的组件和框架,Spring Boot减少了许多繁琐的配置和集成操作,使得开发者可以专注于业务逻辑的实现。 步骤 步骤一:创建一个Spring Boot项目 在Spring Initializr网站中,配置你的项目…

    Java 2023年6月15日
    00
  • R语言3.6.3安装超详细教程附安装包

    下面是详细的“R语言3.6.3安装超详细教程附安装包”的完整攻略。 准备 首先,你需要下载R语言的安装包。可以前往R官网下载对应版本的R语言安装包。 安装 双击运行下载好的R语言安装包; 选择“ Agree”同意协议; 选择安装位置; 在“Select Components”中,推荐选择默认的安装模式; 此时,“Start Menu Folder”中会出现R…

    Java 2023年5月26日
    00
  • Java Lambda表达式详解

    Java Lambda表达式详解 什么是Lambda表达式? Lambda表达式是JDK8引入的一种新的语言特性,主要用于简化Java中的匿名内部类的使用。Lambda表达式本质上是一种匿名函数,实现了函数式编程的思想。 Lambda表达式的语法 Lambda表达式的基本语法如下: (parameters) -> expression 或 (param…

    Java 2023年5月20日
    00
  • Java设计模式之java桥接模式详解

    Java设计模式之java桥接模式详解 什么是Java桥接模式? Java桥接模式是23种常用的设计模式之一,也称为桥梁模式。它是一个两层结构,其中底层定义了实现,而高层定义了抽象。抽象层通过委托调用实现层中的方法,以实现业务需求。这种模式可以将抽象部分与它的实现部分分离,使它们可以独立地变化。 应用场景 Java桥接模式常用于以下场景: 当需要避免使用由于…

    Java 2023年6月16日
    00
  • 深入理解Hibernate中的flush机制

    介绍 Hibernate是一个流行的Java对象关系映射(ORM)框架,具有自己的缓存机制来提高性能。但是,当对象状态发生改变时,Hibernate缓存的值可能会与数据库的值不一致。因此,为了确保一致性,Hibernate借助flush机制将所有未保存的更改与数据库同步。本文将详细介绍Hibernate中的flush机制和如何使用它。 flush方法 flu…

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