Struts2學(xué)習(xí)筆記(4)-通配符的使用
通配符是在struts2配置中非常常用的一種配置方式,在程序開發(fā)過(guò)程中要遵循“約定優(yōu)于配置”的原則,在這種原則下,約定的結(jié)果如果比較合適的話,就會(huì)大大減少配置的數(shù)量,使得配置變得非常簡(jiǎn)單,方便。
下面以例子來(lái)做下說(shuō)明:
1、由如此的一個(gè)struts.xml配置文件:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"
<struts>
<constant name="struts.devMode" value="true" />
<package name="actions" extends="struts-default" namespace="/actions">
<action name="Student*" class="com.bjsxt.struts2.action.StudentAction" method="{1}">
<result>/Student{1}_success.jsp</result>
</action>
<action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">
<result>/{1}_{2}_success.jsp</result>
<!-- {0}_success.jsp -->
</action>
</package>
</struts>
第一個(gè)action使用了一種單個(gè)“ * ”的配置方式,它的method="{1}",這個(gè){1}代表的是前面的name屬性中的第一個(gè)*,對(duì)比第二個(gè)action,{2}代表的是前面name屬性中的第2個(gè)*;類似的在第一個(gè)action中的result中的{1}也是代表name屬性中的第一個(gè)*,同樣類比第二個(gè)result。
2、假如有一個(gè)index.jsp文件
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<% String context = request.getContextPath(); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " <html xmlns=" <head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>Insert title here</title>
</head>
<body>
使用通配符,將配置量降到最低<br />
<a href="<%=context %>/actions/Studentadd">添加學(xué)生</a>
<a href="<%=context %>/actions/Studentdelete">刪除學(xué)生</a>
<br />
不過(guò),一定要遵守"約定優(yōu)于配置"的原則
<br />
<a href="<%=context %>/actions/Teacher_add">添加老師</a>
<a href="<%=context %>/actions/Teacher_delete">刪除老師</a>
<a href="<%=context %>/actions/Course_add">添加課程</a>
<a href="<%=context %>/actions/Course_delete">刪除課程</a>
</body>
</html>
那么根據(jù)通配符的原理,對(duì)于第一個(gè)<a></a>,它的指向是StudentAction類中的add方法,則會(huì)調(diào)用Studentadd_success.jsp文件。同理對(duì)于第三個(gè)<a></a>則會(huì)指向TeacherAction的add方法,調(diào)用Teacher_add_success.jsp文件。
通配符的使用使得struts2的配置變得非常簡(jiǎn)單,它也有自己的原則,即:準(zhǔn)確性匹配,越準(zhǔn)確則更容易匹配到,例如當(dāng)由兩個(gè)action的name都可以匹配到時(shí),它會(huì)自動(dòng)選擇更精確的匹配(此時(shí)的更精確值得是不含有通配符的情況),在都含有通配符的情況下,好像是哪個(gè)在前面哪個(gè)更先匹配!
以上就是Struts2的通配符的使用的全部?jī)?nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于OAuth2.0授權(quán)系統(tǒng)的驗(yàn)證碼功能的實(shí)現(xiàn)
本篇教程給大家分享基于OAuth2.0授權(quán)系統(tǒng)的驗(yàn)證碼功能的實(shí)現(xiàn),驗(yàn)證碼功能的實(shí)現(xiàn)是采用Zuul網(wǎng)關(guān)的Filter過(guò)濾器進(jìn)行校驗(yàn)驗(yàn)證碼,具體實(shí)現(xiàn)代碼跟隨小編一起看看吧2021-05-05
Java中的StringTokenizer實(shí)現(xiàn)字符串切割詳解
這篇文章主要介紹了Java中的StringTokenizer實(shí)現(xiàn)字符串切割詳解,java.util工具包提供了字符串切割的工具類StringTokenizer,Spring等常見框架的字符串工具類(如Spring的StringUtils),需要的朋友可以參考下2024-01-01
SpringBoot多數(shù)據(jù)源配置并通過(guò)注解實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源
本文主要介紹了SpringBoot多數(shù)據(jù)源配置并通過(guò)注解實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
spring中@Configuration和@Bean注解的用法
這篇文章主要介紹了spring中@Configuration和@Bean注解的用法,@Configuration用于定義配置類,可替換xml配置文件,被注解的類內(nèi)部包含有一個(gè)或多個(gè)被@Bean注解的方法,需要的朋友可以參考下2023-05-05
解決Spring?Security集成knife4j訪問(wèn)接口文檔出現(xiàn)403的問(wèn)題
這篇文章主要給大家介紹了如何解決Spring?Security集成knife4j訪問(wèn)接口文檔出現(xiàn)403的問(wèn)題,文中有詳細(xì)的解決方案,有需要的朋友可以參考閱讀下2023-07-07
Java中Iterator與ListIterator迭代的區(qū)別
本文主要介紹了Java中Iterator與ListIterator迭代的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07
Java 多線程synchronized關(guān)鍵字詳解(六)
這篇文章主要介紹了Java 多線程synchronized關(guān)鍵字詳解(六)的相關(guān)資料,需要的朋友可以參考下2015-12-12

