介绍下通配符配置,利用通配符配置是官网推荐的配置方法。
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" /> <package name="01" namespace="/" extends="struts-default"> <action name="Student_*" class="com.tfj.struts2.StudentAction" method="{1}"> <result> /Student_{1}_success.jsp </result> </action> <action name="*_*" class="com.tfj.struts2.{1}Action" method="{2}"> <result> /{1}_{2}_success.jsp </result> </action> </package> </struts>
StudentAction.java
package com.tfj.struts2; import com.opensymphony.xwork2.ActionSupport; public class StudentAction extends ActionSupport{ public String add(){ return SUCCESS; } public String delet(){ return SUCCESS; } }
先看第一个action 调用http://localhost:8080/Struts2_0600_Wildcard/Student_add或http://localhost:8080/Struts2_0600_Wildcard/Student_delet均可以和这个action匹配,调用StudentAction的方法。
method={1}意思是和第一个星号的内容相同,例如访问http://localhost:8080/Struts2_0600_Wildcard/Student_add星号的内容就是add,即调用add方法。
第二个action是最为简化的,名称是*_*,类是class="com.tfj.struts2.{1}Action",{1}代表第一个星号内容,method="{2}"调用与第二个星号内容相同的方法,result /{1}_{2}_success.jsp.最大化的精简了配置。只需要这一个action,列表中的内容都实现了访问。
Tips:当出现输入都能匹配的时候,如有一个action 名是student_success 和一个action 名称是*_success ,优先匹配精确的action。