通配符的使用
1.新建类 ActionWildCard,验证通配符的方法,如下图:
2.添加Student需要实践的两个方法 add,deete
package cn.cqvie.wildcard; import com.opensymphony.xwork2.ActionSupport; public class StudentAction extends ActionSupport { public String add() { return SUCCESS; } public String delete() { return SUCCESS; } }
3.添加Teacher需要实践的两个方法 add,deete
package cn.cqvie.wildcard; import com.opensymphony.xwork2.ActionSupport; public class TeacherAction extends ActionSupport { public String add(){ return SUCCESS; } public String delete(){ return SUCCESS; } }
由此可得需要新建两个jsp页面用于显示运行结果
4.新建Studentadd_success.jsp:注意此处的Student必须要大写,只需在body里写一句话即可
<body>
Student Add Success! <br>
</body>
5.新建 Studentdelete_success.jsp:注意此处的Student必须要大写,也只需在body里写一句话即可
<body>Student Delete Success!<br></body>
6.新建Teacher_add_success.jsp:注意此处的T必须要大写,也只需在body里写一句话即可
<body>
Teacher Add SUCCESS!<br>
</body>
7.新建 Teacher_delete_success.jsp:注意此处的T必须要大写,也只需在body里写一句话即可
<body>
Teacher Delete Success! <br>
</body>
8.配置 struts.xml文件的内容: ***
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name="actions" extends="struts-default" namespace="/actions"> <action name="Student*" class="cn.cqvie.wildcard.StudentAction" method="{1}" > <result>/Student{1}_success.jsp</result> </action> <action name="*_*" class="cn.cqvie.wildcard.{1}Action" method="{2}" > <result >/{1}_{2}_success.jsp</result> </action> </package> </struts>
9.此处的“*”代表所有,即Student具有的所有方法,{1}=“*”,即当“*”代表“add”时,“{1}”也就代表“add”。也就是说“*”与“{}”内容一致。
“*_*”代表的是:第一个“*”代表“Teacher”;第二个“*”代表“add”方法或者“delete”方法。
10.修改web.xml中的mapping:需要将url-pattern原来的“*.action”改为“/*”,否则就无法找到actions对应的方法。
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
11.运行/调试,将该项目部署在tomcat上,打开浏览器在地址栏输入该项目的名称,回车,分别点“添加学生”,“删除学生”,“添加老师”,“删除老师”就可以成功跳转到该页面了
12总结:要注意字母的大小写,配置“struts.xml”文件时,相对应的“action”动作要与之一致,遵循“约定优于配置”原则