Struts(三) 通配符讲解

本文介绍如何在Struts2框架中使用通配符简化配置文件,包括web.xml和Struts配置文件的具体示例,并解释了通配符的匹配原则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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>


1.3、Action类

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、如果在多个通配符中没有相近的就使用就近原则。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值