Struts2配置文件中使用通配符的方法(三种形式)

使用通配符在Struts2配置文件中可以方便地定义多个相似的Action或者Interceptor,以及进行全局的配置。

在Struts2的配置文件中,有三种形式可以使用通配符,分别如下:

  1. 使用“”号通配符
    例如:<package name="default" extends="struts-default">
    <action name="show*"
    class="org.example.ShowAction"
    method="execute">
    </action>
    </package>

    在上述配置中,使用了名为“show
    ”的Action来匹配以“show”开头的所有URL请求,例如“/showOne”、“/showTwo”等都会被匹配到该Action中。

  2. 使用“**”号通配符
    例如:`

          <interceptor-stack name="myStack">
              <interceptor-ref name="myInterceptor"/>
          </interceptor-stack>
    
          <package name="default" extends="struts-default">
              <interceptors>
                  <interceptor-stack name="myStack">
                      <interceptor-ref name="defaultStack"/>
                  </interceptor-stack>
              </interceptors>
    
              <action name="**/modify*"
                      class="org.example.ModifyAction"
                      method="execute">
                  <interceptor-ref name="myStack"/>
              </action>
          </package>`
    

    上述配置中,使用了名为“*/modify”的Action来匹配以任意数目的子目录开头,且以“modify”开头的所有URL请求,例如“/user/modifyInfo”、“/product/modifyPrice”等都会被匹配到该Action中。同时,该Action中也使用了自定义的拦截器栈“myStack”。

  3. 使用“{}”号通配符
    例如:<package name="default" extends="struts-default">
    <action name="{id}"
    class="org.example.ShowAction"
    method="execute">
    </action>
    </package>

    在上述配置中,使用了名为“{id}”的Action来匹配任何一段URL请求,并将该段请求作为参数传递给ShowAction的execute()方法中,例如“/user/1”、“/product/2”等都会被匹配到该Action中。在此例中,可以通过在Action中配置的get/set方法获取到URL请求传递的参数值。

示例1:

假设在Struts2应用中,有很多以“show”开头的URL请求,对应的Action都是ShowAction类,如果我们不想为每一个Action都单独定义一个name属性,而是使用通配符,则配置文件可以如下修改:

<package name="default" extends="struts-default">
    <action name="show*"
            class="org.example.ShowAction"
            method="execute">
    </action>
</package>

上述配置即可匹配到所有以“show”开头的请求,并转发到ShowAction中处理。

示例2:

假设在Struts2应用中,有多个类似于“/user/1”,“/product/2”这样的请求,需要传递请求的路径作为参数给相应的Action类。这时候,我们可以使用{ }通配符来捕获这些请求,并将其传递给Action处理,配置文件可以如下修改:

<package name="default" extends="struts-default">
    <action name="{id}"
            class="org.example.ShowAction"
            method="execute">
    </action>
</package>

在这个配置中,“{id}”用来匹配URL请求中的任何一段,该段的值会被传递给对应的Action类处理。例如,URL请求为“/user/1”,则该请求会被匹配到这个配置中的Action,并被转发到ShowAction中,ShowAction可以通过getter方法获取到路径参数值“1”。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Struts2配置文件中使用通配符的方法(三种形式) - Python技术站

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

相关文章

  • Java字符串拼接的五种方法及性能比较分析(从执行100次到90万次)

    这里给您讲解一下“Java字符串拼接的五种方法及性能比较分析(从执行100次到90万次)”的完整攻略。 标题 Java字符串拼接的五种方法及性能比较分析(从执行100次到90万次) 内容 前言 随着Java开发的广泛应用,字符串拼接也成为了Java开发中不可避免的一个问题。在这篇文章中,我们将介绍Java中五种常见的字符串拼接方法,包括基本字符串拼接、Str…

    Java 2023年5月26日
    00
  • 浅谈Java面向接口编程

    让我来详细讲解“浅谈Java面向接口编程”的攻略。 什么是Java面向接口编程 Java面向接口编程是指在编写Java程序时,通过定义接口,限制具体实现类的行为,从而降低程序的耦合性和提高代码的可维护性。 在Java中,接口是一种抽象的定义,它定义了一组方法或属性的规范,但并不提供实现,而实现接口的类则必须实现接口中定义的所有方法。 面向接口编程,充分利用了…

    Java 2023年5月23日
    00
  • 基于jstl 标签的使用介绍

    下面是关于“基于jstl标签的使用介绍”的完整攻略。 什么是JSTL? JSTL(JavaServer Pages标准标签库)是在Java web应用程序中使用的一组标记,是为JSP提供的一组标签,它可以帮助程序员们简化JSP页面的创建和维护流程,是JSP中常用的标签库之一。 JSTL是一组配置简单、参数方便的标记库,是JSP中最重要的标记库之一,但它不是J…

    Java 2023年6月15日
    00
  • 用java实现冒泡排序算法

    以下是用Java实现冒泡排序算法的完整攻略: 冒泡排序算法简介 冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就交换位置。重复地进行直到没有任何一对数字需要比较,即所有的数字按照从小到大(或从大到小)排序完成。 冒泡排序算法步骤 首先,比较相邻的两个元素,如果前面的元素大于后面的元素,就交换这两个元素的位置; …

    Java 2023年5月19日
    00
  • Spring Boot 配置大全(小结)

    针对“SpringBoot配置大全(小结)”这个主题,以下是一份完整攻略: SpringBoot配置大全(小结) 1. 配置文件 在Spring Boot中,我们可以通过application.properties或application.yml等配置文件来配置应用程序的相关属性。其中,application.yml文件采用了更加人性化的格式来展示配置信息。…

    Java 2023年5月15日
    00
  • JavaSE文件操作工具类FileUtil详解

    JavaSE文件操作工具类FileUtil详解 简介 JavaSE中提供了File类用来操作文件或目录。但是,操作文件或目录的流程较为繁琐,如果我们需要经常操作文件或目录,就需要编写大量的重复代码。为了解决这个问题,我们可以将文件操作的常用方法封装在一个工具类中,从而减少代码量和提高开发效率。本文将介绍一个JavaSE文件操作的工具类FileUtil。 Fi…

    Java 2023年5月19日
    00
  • Java面向对象编程(封装/继承/多态)实例解析

    Java面向对象编程(封装/继承/多态)实例解析 什么是面向对象编程? 面向对象编程(Object-oriented Programming)简称 OOP,是一种将现实世界中的事物抽象成为计算机程序中的对象的编程思想,它强调类、对象、封装、继承、多态等概念,使得程序易于维护、扩展和重用。 在Java中,面向对象编程是一种很重要的编程范式,Java的基础类库(…

    Java 2023年5月26日
    00
  • java在pdf中生成表格的方法

    生成表格是PDF文档中常见的需求之一,Java中有很多第三方库可以实现这一功能。以下是使用iText库生成表格的步骤: 第一步:导入iText库 在使用iText库之前,需要在项目中导入iText的jar文件。可以通过Maven等构建工具,或手动下载并导入jar文件。 第二步:创建PDF文档 可以使用iText库创建PDF文档,如下所示: Document …

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