Struts2学习笔记(4)-通配符的使用
通配符是在struts2配置中非常常用的一种配置方式,在程序开发过程中要遵循“约定优于配置”的原则,在这种原则下,约定的结果如果比较合适的话,就会大大减少配置的数量,使得配置变得非常简单,方便。
下面以例子来做下说明:
1、由如此的一个struts.xml配置文件:
<?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constantname="struts.devMode"value="true"/> <packagename="actions"extends="struts-default"namespace="/actions"> <actionname="Student*"class="com.bjsxt.struts2.action.StudentAction"method="{1}"> <result>/Student{1}_success.jsp</result> </action> <actionname="*_*"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文件
<?xmlversion="1.0"encoding="GB18030"?> <%@pagelanguage="java"contentType="text/html;charset=GB18030" pageEncoding="GB18030"%> <%Stringcontext=request.getContextPath();%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <htmlxmlns="http://www.w3.org/1999/xhtml"> <head> <metahttp-equiv="Content-Type"content="text/html;charset=GB18030"/> <title>Inserttitlehere</title> </head> <body> 使用通配符,将配置量降到最低<br/> <ahref="<%=context%>/actions/Studentadd">添加学生</a> <ahref="<%=context%>/actions/Studentdelete">删除学生</a> <br/> 不过,一定要遵守"约定优于配置"的原则 <br/> <ahref="<%=context%>/actions/Teacher_add">添加老师</a> <ahref="<%=context%>/actions/Teacher_delete">删除老师</a> <ahref="<%=context%>/actions/Course_add">添加课程</a> <ahref="<%=context%>/actions/Course_delete">删除课程</a> </body> </html>
那么根据通配符的原理,对于第一个<a></a>,它的指向是StudentAction类中的add方法,则会调用Studentadd_success.jsp文件。同理对于第三个<a></a>则会指向TeacherAction的add方法,调用Teacher_add_success.jsp文件。
通配符的使用使得struts2的配置变得非常简单,它也有自己的原则,即:准确性匹配,越准确则更容易匹配到,例如当由两个action的name都可以匹配到时,它会自动选择更精确的匹配(此时的更精确值得是不含有通配符的情况),在都含有通配符的情况下,好像是哪个在前面哪个更先匹配!
以上就是Struts2的通配符的使用的全部内容,希望能给大家一个参考,也希望大家多多支持毛票票。