首先,看一个struts2的配置文件:
/Student{1}_success.jsp
这里,"{1}"表示第1个*,例如,当请求以下路径时:
引用
http://localhost:9000/Struts2_0600_ActionWildcard/actions/Studentadd
*为add,因此method="add",返回的页面为/Studentadd_success.jsp即实际调用的是StudentAction中的add方法。struts2的配置文件还可以更加简洁,即在action的class中使用通配符,如下:
/{1}_{2}_success.jsp
使用两个通配符,{1}代表第一个*,{2}代表第二个*号。
这个配置文件的意思是调用{1}Action的{2}方法,返回到{1}_{2}_success.jsp这个页面。例如,当请求一下路径时: 引用
http://localhost:9000/Struts2_0600_ActionWildcard/actions/Teacher_add
其中{1}为Teacher,{2}为add,即实际调用的是TeacherAction类中的add方法,返回到Teacher_add_success.jsp页面。可以看到,使用第二种通配符,配置文件非常简洁,即使增加类和方法,也不需要修改配置文件,因此推荐通过第二种方式使用通配符。 Struts2配置中 Action 使用通配符
1). Xml代码 1. <action name="user*" class="com.UserAction" method="{1}"> 2. <result name="succee">/logon/welcome.jsp</result> 3. <result name="input">/logon/logon.jsp</result> 4. </action> <action name="user*" class="com.UserAction" method="{1}"> <result name="succee">/logon/welcome.jsp</result> <result name="input">/logon/logon.jsp</result></action>比如当用户请求userLogon时,会被UserAction类处理,method{1}中{1}值为name属性中第一个*的值.2).Xml代码 1. <action name="*Action_*" class="com.{1}" method="{2}"> 2. <result name="succee">/logon/welcome.jsp</result> 3. <result name="input">/logon/logon.jsp</result> 4. </action> <action name="*Action_*" class="com.{1}" method="{2}"> <result name="succee">/logon/welcome.jsp</result> <result name="input">/logon/logon.jsp</result></action>当用户请求UserAction_logon时,会被UserAction类的logon方法处理与上面一样,class中{1}的值为name属性中第一个*的值,也就是UserAction,{2}的值为name属性中第二个*的值,即为logon