1、通配符讲解
通配符的使用一般是在项目经理约定之后才能很好的使用;首先对于通配符而言更加简洁配置文件的配置
1.2、web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<!-- 访问地址: http://localhost:8081/Struts2_2016_0100_HelloWord/hello -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
1.2、Struts2配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- <constant name="struts.enable.DynamicMethodInvocation" value="false" /> -->
<!-- 设置为开发者模式 修改之后不需要重启服务器 -->
<constant name="struts.devMode" value="false" />
<package name="default" namespace="/" extends="struts-default">
<!-- {1} 表示*号的位置 -->
<!-- 通配符匹配会是使你的配置非常的简便
1、作用:首先是约定好了;这样子无论你是添加Action类和方法;不需要
动配置文件。
2、所以:约定优于配置。
3、如果配置文件有相同的配置时;先配置相似的,再根据顺序来【水仙面就调谁】
-->
<action name="hello*" class="com.flx.actions.HelloWorld" method="{1}">
<result>
/jsp/hello_{1}.jsp
</result>
</action>
<!-- 最简化的配置:{1}要大写:因为找的是类【大写开头】 -->
<action name="*_*" class="com.flx.actions.{1}Action" method="{2}">
<result>
/jsp/{1}_{2}.jsp
</result>
</action>
</package>
</struts>
public class HelloWorld extends ActionSupport {
private static final String FINAL_FLX_001 = "success";
public String add(){
return FINAL_FLX_001;
}
public String delete(){
return FINAL_FLX_001;
}
}
1.4、JSP页面 hello_add.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>添加学生页面</title>
</head>
<body>
添加学生页面
</body>
</html>
1.5、请求地址
http://localhost:8081/Struts2_2016_0100_HelloWord/helloadd.action
结果跳到:hello_add.jsp页面
总结:使用通配符的前提就是“约定大于配置”;就是说当项目经理约定之后才会考虑是是否需要使用通配符,使用通配符会使得配置文件更加的简单。
1、匹配原则:如果是有多个通配符,先找最相似的那个。
2、如果在多个通配符中没有相近的就使用就近原则。