Struts2的Action的通配符

1.调用相同Action中的不同方法 ,动态结果

<span style="font-size:14px;"><action name="Wildcard_*" class="com.zucc.action.TestActionWildcard" method="{1}">
 	 		<result>/Wildcard_{1}.jsp</result>
 	 	</action></span>
当在浏览器中输入http://localhost:8080/Struts2/Wildcard_del时,去调用了TestActionWildcard中的del方法,并返回Wildcard_del.jsp

页面,也就是说表达式{1}的值--->name属性值"Wildcard_*"中*的值,然后去调用class属性值的Action中相应的方法


2.通过匹配,调用不同的Action中的方法

<span style="font-size:14px;"><action name="*_*" class="com.zucc.action.TestAction{1}" method="{2}">
 	 		<result>/{1}_{2}.jsp</result>
 	 	</action></span>
当在浏览器中输入http://localhost:8080/Struts2/Wildcard_del时,去调用了TestActionWildcard中的del方法,并返回Wildcard_del.jsp

页面,也就是说表达式{1}的值--->name属性值"*_*"中第一个*的值,{2}的值--->name属性值"*_*"中第二个*的值,然后去调用class属

性值的Action中相应的方法


注意:当精确配置,第一种通配符配置,第二种通配符配置同时存在,会先判断是否匹配到精确配置的name的属性值,再判断是否

匹配到第一种通配符配置的name的属性值,最后判断是否匹配到第二种通配符配置的name的属性值。

如:

<?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.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    
 	<package name="default" namespace="/" extends="struts-default">
 		<action name="Wildcard_del"class="com.zucc.action.TestActionWildcard" ></action>
 			<result>/Hello.jsp</result>

 	 	<action name="Wildcard_*" class="com.zucc.action.TestActionWildcard" method="{1}">
 	 		<result>/Hello1.jsp</result>
 	 	</action> 

 	 	<action name="*_*" class="com.zucc.action.TestAction{1}" method="{2}">
 	 		<result>/Hello2.jsp</result>
 	 	</action>
    </package>
</struts>

当在浏览器输入http://localhost:8080/Struts2/Wildcard_del时先匹配到第一个action,返回Hello.jsp页面

当在浏览器输入http://localhost:8080/Struts2/Wildcard_add时先匹配到第二个action,返回Hello1.jsp页面

当在浏览器输入http://localhost:8080/Struts2/Www_add时只匹配到第三个action,返回Hello3.jsp页面














评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值