美文网首页Java 杂谈
Struts2学习笔记 | 通配符映射

Struts2学习笔记 | 通配符映射

作者: 一颗白菜_ | 来源:发表于2019-08-01 12:38 被阅读3次

1.概述

  • 在之前的学习中,一个action我们都得去配置一次,那么如果有若干个action时,我们就得去配置若干个<action></action>节点,不易于维护。

  • 一个Web应用可能有成百上千个action声明,可以利用Struts提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系。


2.格式

类似于下面这样的格式,但是在Action类中必须要有对应的方法才能匹配

使用*之后可以使用{1},{2}来代替第一个*,第二个*,以此类推。

<action name="UserAction-*" class="struts.ss.UserAction" method="{1}">
      <result name="{1}-success">/success.jsp</result>
 </action>

3.通配符映射的规则

  • 若找到多个匹配,没有通配符的那个将胜出
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">

<struts>
    <!-- 配置Struts可以受理的请求的扩展名 -->
    <constant name="struts.action.extension" value="action,,do"></constant>

    <package name="default" extends="struts-default" strict-method-invocation="false">

        <!-- 假如匹配的是UserAction-save ,则会优先匹配第二个而不是第一个-->
        <action name="UserAction-*" class="struts.ss.UserAction" method="{1}">
            <result name="{1}-success">/success.jsp</result>
        </action>

        <action name="UserAction-save" class="struts.ss.UserAction" method="test">
            <result name="query-succerr">/success.jsp</result>
        </action>

    </package>
  • 若指定的动作不存在,Struts将会尝试把这个URI与任何一个包含着通配符*的动作名进行匹配

  • 被通配符匹配到的URI字符串的子串可以用{1},{2}来引用
    {1}匹配第一个子串,{2}匹配第二个子串等等
    {0}匹配整个URI

  • 若Struts找到的带有通配符的匹配不止一个,则按先后顺序进行匹配

  • 可以匹配零个或多个字符,但不包括/字符,如果想把/字符包括在内,需要使用**,如果需要对某个字符进行转义,需要使用\


3.关于Struts2.5以上版本的说明

  • 在看视频学习的时候其教学视频用的是2.3版本的,因此在包前面不用修改其它配置,<package name="default" extends="struts-default" >...</package>就好

  • 但是我自己使用的是Struts2.5,没修改包的属性后直接配置action后,会报错,在包属性添加strict-method-invocation="false"就好了。
    即:<package name="default" extends="struts-default" strict-method-invocation="false">....</package>

相关文章

  • Struts2学习笔记 | 通配符映射

    1.概述 在之前的学习中,一个action我们都得去配置一次,那么如果有若干个action时,我们就得去配置若干个...

  • 动作通配符映射

    注:存在多个匹配的情况:绝对匹配 ->按照通配符匹配的配置顺序为准 动态方法调用DMI(Dynamic Metho...

  • Struts2学习笔记(核心组件详解)

    [toc] Struts2学习笔记(核心组件详解) @(_1每日记录) 返回到JQuery学习笔记@达内lang笔...

  • Servlet学习笔记2: Servlet细节

    【目录】 Servlet多重映射 映射路径中使用通配符 Servlet是运行在...

  • Struts2理解--动态方法和method属性及通配符_默认A

    Struts2 理解 -- 动态方法和 method 属性及通配符_默认 Action 众所周知,默认条件下,在浏...

  • Struts2学习笔记 | 值栈和OGNL

    1.值栈(ValueStack) 引入值栈 在部署第一个Struts2时,Struts2学习笔记 | 部署第一个S...

  • CSS选择器

    CSS学习笔记 一、CSS选择器 0.通配符 通配符是全局的设定的CSS样式,也就是设置了之后整个界面都会采用的样...

  • Struts2笔记

    Struts2笔记——Struts2的模型驱动(ModelDriven) 1. 模型驱动: 模型驱动是使用...

  • structs2

    一、学习方法:做好笔记。Struts2内容比较多,比较杂。多做实验,证明结论。二、Servlet PK Filte...

  • go学习笔记(映射)

    映射 映射是一种用来存储一系列无序键值对的数据结构 映射的底层存储结构。 可以看出一个映射里包含了很多个hash桶...

网友评论

    本文标题:Struts2学习笔记 | 通配符映射

    本文链接:https://www.haomeiwen.com/subject/mkxqdctx.html