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

yizhihongxing

在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日

相关文章

  • SpringBoot @ExceptionHandler与@ControllerAdvice异常处理详解

    下面是SpringBoot @ExceptionHandler与@ControllerAdvice异常处理的详解。 异常处理概述 异常是在程序运行过程中可能出现的错误或意外情况,它会导致程序无法正常执行。在Java中,异常处理是必不可少的一部分,能够提高程序的鲁棒性和可靠性。在SpringBoot中,常见的异常类型包括:空指针异常、请求方法不支持异常、请求参…

    Java 2023年5月27日
    00
  • Java包机制及javadoc详解

    下面是“Java包机制及javadoc详解”的完整攻略。 一、Java包机制 Java中的包(Package)是将相关的类组成的一种单元,它的作用就是解决了相同类名的问题,也方便了其他开发人员的使用。在Java中,每一个类都必须属于一个包,没有包名的类默认属于默认包。 1.1 包的定义 我们可以使用package关键字定义一个包,它必须放在类定义之前。语法格…

    Java 2023年5月20日
    00
  • springBoot 项目排除数据库启动方式

    如果我们在开发Spring Boot项目时,不需要启动数据库或者采用其他方式连接数据库,可以进行一些排除操作,以提高项目的启动速度。下面详细介绍用Maven 和 Gradle两种方式排除启动数据库。 Maven方式 在Maven中排除数据库启动可以通过在pom.xml配置文件中添加如下代码进行排除。 <dependency> <groupI…

    Java 2023年6月16日
    00
  • Spring连接Mysql数据库的实现步骤

    下面是关于Spring连接MySQL数据库的实现步骤的攻略: 简介 Spring 是一个轻量级的开源框架,提供了依赖注入(DI)和面向切面编程(AOP)等特征,可用于创建企业级应用程序。而 MySQL 是一个开源的关系型数据库,被广泛应用于各种类型的应用程序。在Spring应用程序中,可以使用Spring JDBC来连接MySQL数据库。 连接MySQL数据…

    Java 2023年5月20日
    00
  • JSP由浅入深(9)—— JSP Sessions

    下面是关于 JSP Sessions 的完整攻略。 什么是 JSP Sessions 在学习 JSP 开发过程中,我们经常需要存储一些用户的数据,比如用户的登录信息、购物车中的商品、用户的浏览记录等等。这些数据需要在不同的页面之间传递或者在同一个页面中进行共享。而 JSP Sessions 就是一种实现数据共享的技术。 Session 在 JSP 中是一个用…

    Java 2023年6月15日
    00
  • SpringBoot+MyBatis实现登录案例

    下面我就详细讲解一下“SpringBoot+MyBatis实现登录案例”的完整攻略。 准备工作 首先,我们需要准备好以下工具和环境: Java开发环境(推荐使用Java 8或以上版本) Maven项目管理工具 IDEA或Eclipse集成开发环境 MySQL数据库 创建Maven工程 使用IDEA或Eclipse创建一个Maven工程,项目结构如下: pro…

    Java 2023年5月20日
    00
  • Java的抽象类 & 接口

    抽象类 如果自下而上在类的继承层次结构中上移,位于上层的类更具有通用性,甚至可能更加抽象。从某种角度看,祖先类更加通用,人们只将它作为派生其他类的基类,而不作为想使用的特定的实例类。例如,考虑一下对 Employee 类层次的扩展。一名雇员是一个人,一名学生也是一个人。下面将 Person 类和 Student 类添加到类的层次结构中。下图是这三个类之间的关…

    Java 2023年5月10日
    00
  • Java线程安全问题的解决方案

    Java中线程安全问题是一个很常见的问题。当多个线程并发访问相同的代码块或共享的内存时,就可能会出现线程安全问题。这种问题可能会导致程序崩溃或者输出的结果错误。为了解决线程安全问题,我们需要采取一些特殊的措施来保证程序的正确性。本文将介绍一些常见的Java线程安全问题的解决方案。 使用同步机制 在Java中,可以使用synchronized关键字来保证代码块…

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