Struts2學習筆記(4)-通配符的使用
通配符是在struts2配置中非常常用的一種配置方式,在程序開發(fā)過程中要遵循“約定優(yōu)于配置”的原則,在這種原則下,約定的結(jié)果如果比較合適的話,就會大大減少配置的數(shù)量,使得配置變得非常簡單,方便。
下面以例子來做下說明:
1、由如此的一個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>
第一個action使用了一種單個“ * ”的配置方式,它的method="{1}",這個{1}代表的是前面的name屬性中的第一個*,對比第二個action,{2}代表的是前面name屬性中的第2個*;類似的在第一個action中的result中的{1}也是代表name屬性中的第一個*,同樣類比第二個result。
2、假如有一個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">添加學生</a>
<a href="<%=context %>/actions/Studentdelete">刪除學生</a>
<br />
不過,一定要遵守"約定優(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ù)通配符的原理,對于第一個<a></a>,它的指向是StudentAction類中的add方法,則會調(diào)用Studentadd_success.jsp文件。同理對于第三個<a></a>則會指向TeacherAction的add方法,調(diào)用Teacher_add_success.jsp文件。
通配符的使用使得struts2的配置變得非常簡單,它也有自己的原則,即:準確性匹配,越準確則更容易匹配到,例如當由兩個action的name都可以匹配到時,它會自動選擇更精確的匹配(此時的更精確值得是不含有通配符的情況),在都含有通配符的情況下,好像是哪個在前面哪個更先匹配!
以上就是Struts2的通配符的使用的全部內(nèi)容,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot使用influxDB時序數(shù)據(jù)庫的實現(xiàn)
項目中需要存放大量設(shè)備日志,且需要對其進行簡單的數(shù)據(jù)分析,信息提取工作,所以本文就介紹一下Springboot使用influxDB時序數(shù)據(jù)庫,感興趣的可以了解一下2021-08-08Java?Chassis3熔斷機制的改進路程技術(shù)解密
這篇文章主要介紹了Java?Chassis?3技術(shù)解密之熔斷機制的改進路程實例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01SpringBoot集成SFTP客戶端實現(xiàn)文件上傳下載實例
這篇文章主要為大家介紹了SpringBoot集成SFTP客戶端實現(xiàn)文件上傳下載實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08