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日

相关文章

  • Spring BeanPostProcessor源码示例解析

    Spring BeanPostProcessor源码示例解析 1. 什么是BeanPostProcessor? BeanPostProcessor是Spring框架中的一个扩展点,它允许我们在Bean实例化、依赖注入和初始化的过程中对Bean进行自定义处理。BeanPostProcessor接口定义了两个方法: Object postProcessBefor…

    Java 2023年5月18日
    00
  • 构建SpringBoot+MyBatis+Freemarker的项目详解

    以下是详细讲解“构建SpringBoot+MyBatis+Freemarker的项目详解”的完整攻略。 1. 创建SpringBoot项目 首先,打开IDEA,点击创建一个新项目,选择Spring Initializr,选择构建工具为Maven,添加所需依赖,包含以下依赖: Spring Web MyBatis Framework MySQL Driver …

    Java 2023年5月19日
    00
  • SpringBoot整合ip2region实现使用ip监控用户访问城市的详细过程

    下面是整合ip2region实现使用ip监控用户访问城市的详细过程: 步骤一:创建SpringBoot项目 首先,我们需要创建一个SpringBoot项目,可以使用Spring Initializr(https://start.spring.io/)来创建项目。 步骤二:添加依赖 在创建完成后,在pom.xml文件中添加ip2region的Maven依赖: …

    Java 2023年5月19日
    00
  • SpringBoot后端数据校验实战操作指南

    下面我为您详细讲解“SpringBoot后端数据校验实战操作指南”的完整攻略。 介绍 Springboot是一款非常流行的轻量级Java Web框架,它提供了很多方便的工具和组件,能够帮助我们快速、高效地开发应用程序。在使用Springboot开发Web应用的过程中,数据校验是一个非常重要的环节。数据校验可以帮助我们减少数据入库前的错误,从而提高程序的可靠性…

    Java 2023年5月20日
    00
  • 常见的排序算法,一篇就够了

    常见的排序算法 排序算法是计算机程序中常见的基本操作之一,它的作用是将一组无序的数据按照某种规则进行排序。在实际的开发中,经常需要对数据进行排序,比如搜索引擎中对搜索结果的排序、电商网站中对商品的排序等。 目前常见的排序算法有多种,下面将对一些常见的排序算法进行介绍: 1. 冒泡排序 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数据,每次比较相邻的两个…

    Java 2023年5月19日
    00
  • java实现可视化界面肯德基(KFC)点餐系统代码实例

    Java实现可视化界面肯德基(KFC)点餐系统 1. 系统介绍 本系统是基于Java编程语言实现的可视化界面肯德基(KFC)点餐系统。该系统通过图形用户界面(GUI)实现了用户对菜品的选择,购物车的添加与删除等基本操作。本系统的目标是帮助用户更加方便、快捷地选择自己喜欢的肯德基(KFC)菜品,并实现订单的管理和处理。 2. 系统实现 2.1 系统功能 本系统…

    Java 2023年5月24日
    00
  • vuejs 动态添加input框的实例讲解

    下面是关于“vuejs 动态添加input框的实例讲解”的完整攻略: 1. 需求分析 在编写一个表单页面时,通常需要动态添加表单项,比如当用户需要输入多个电话号码时,我们需要在页面上动态添加多个电话输入框。这时我们可以使用 Vue.js 来实现动态添加 input 框。 2. 实现动态添加 input 框的步骤 2.1 定义数据 我们需要定义一个数组来存储 …

    Java 2023年6月15日
    00
  • SpringBoot Security从入门到实战示例教程

    Spring Boot Security从入门到实战示例教程 Spring Boot Security是基于Spring Boot和Spring Security开发的一套web应用安全框架。它强化了基于Spring的应用程序的安全性,同时还保持了生产就绪型的特性。 以下是Spring Boot Security的入门到实战示例教程: 一、Spring Bo…

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