使用通配符的好处就是可以减少配置文件的内容,但是会减少可读性。
使用通配符的原则是:约定优于配置
通配符的分类:
1.匹配元字符
代码/语法 说明
. 匹配除换行符以外的任意字符
w 匹配字母或数字
s 匹配任意的空白符
d 匹配数字
匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
2.限定元字符
+ 1到多次
? 0到1
* 0到多次
struts2通配符使用的例子:
action方法:
public class UserAction extends ActionSupport {
public String del(){
return "del";
}
public String add(){
return "add";
}
public String list(){
return "list";
}
}
struts的xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true"></constant>
<package name="pattern" namespace="/" extends="struts-default">
<!--第一个 * 代表Action类的名称 第二个 * 代表类中方法的名称-->
<action name="*_*" class="cn.sjl.day02.pattern.{1}" method="{2}">
<result name="{2}">/day02/{2}.jsp</result>
</action>
</package>
</struts>
jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>成功 </title>
</head>
<body>
添加成功
</body>
</html>
web.xml配置文件
<web-app>
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>struts</filter-name>
<!--核心控制器-->
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
访问方式:
struts2通配符使用虽然简单,但是它也有一定的局限性(缺点)。
缺点:1.可读性差
2.和其他一些标签联合使用的使用,其他标签的威力发挥不出来了