通配符(WildCard)的使用
一、關于WildCard:一個web應用,有成千上萬個action聲明,可以利用struts2提供的映射機制把多個彼此相似的映射關系簡化成一個映射關系,即通配符。
1.新建類 ActionWildCard,驗證通配符的方法
2.1添加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;
}
}
2.2添加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;
}
}
3.由方法可知,需要新建兩個jsp頁面用于顯示運行結果
3.1 Studentadd_success.jsp:注意此處的Student必須要大寫
里面只需輸出一句話:
<body>
Student Add Success! <br>
</body>
3.2 Studentdelete_success.jsp:方法同上
同樣只需要輸出一句話即可
<body>
Student Delete Success!<br>
</body>
3.3Teacher_add_success.jsp:注意此處的T必須要大寫
只需輸出一句話即可。
<body>
Teacher Add SUCCESS!<br>
</body>
3.4 Teacher_delete_success.jsp:注意此處的T必須要大寫
輸出一句話提示語:
<body>
Teacher Delete Success! <br>
</body>
4.配置 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>
注:此處的“*”代表所有,即Student具有的所有方法,{1}=“*”,即當“*”代表“add”時,“{1}”也就代表“add”。也就是說“*”與“{}”內容一致。
“*_*”代表的是:第一個“*”代表“Teacher”;第二個“*”代表“add”方法或者“delete”方法。
5.修改web.xml中的mapping:需要將url-pattern原來的“*.action”改為“/*”,否則就無法找到actions對應的方法。
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping></web-app>
6. 運行/調試
將該項目部署在tomcat上——>打開瀏覽器——>在地址欄輸入該項目的名稱——>回車
6.1 點擊“添加學生”可以發現地址欄變化:action可以成功找到Student的“add”方法
6.2 點擊“刪除學生”可以發現地址欄變化:action可以成功找到Student的“delete”方法
6.3點擊“添加老師”可以發現地址欄變化:action可以成功找到Teacher的“add”方法
6.4 點擊“刪除老師”可以發現地址欄變化:action可以成功找到Teacher的“delete”方法
7.總結、教訓
1)當找到多個匹配,則沒有通配符的那個勝出;
2)若指定的動作不存在,struts將會把這個URI與任何一個通配符包含“*”的動作名進行匹配;
3)需要注意的是,配置“struts.xml”文件時,相對應的“action”動作要與之一致,否則將找不到訪問對象,報404錯誤。
4)遵循“約定優于配置”原則,可以使自己在配置時省事。比如類的首字母需要大寫,而方法名需要小寫。
沒有人能一路單純到底,但是要記住,別忘了最初的自己!
總結
以上是生活随笔為你收集整理的通配符(WildCard)的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转基因婴儿技术原理详细介绍
- 下一篇: 展示冷冻柜怎么解决肉类海鲜风干?