Struts2学习笔记(4)-通配符的使用
程序员文章站
2024-03-12 11:34:38
通配符是在struts2配置中非常常用的一种配置方式,在程序开发过程中要遵循“约定优于配置”的原则,在这种原则下,约定的结果如果比较合适的话,就会大大减少配置的数量,使得配...
通配符是在struts2配置中非常常用的一种配置方式,在程序开发过程中要遵循“约定优于配置”的原则,在这种原则下,约定的结果如果比较合适的话,就会大大减少配置的数量,使得配置变得非常简单,方便。
下面以例子来做下说明:
1、由如此的一个struts.xml配置文件:
复制代码 代码如下:
<?xml version="1.0" encoding="utf-8" ?>
<!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>
<!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文件
复制代码 代码如下:
<?xml version="1.0" encoding="gb18030" ?>
<%@ page language="java" contenttype="text/html; charset=gb18030"
pageencoding="gb18030"%>
<% string context = request.getcontextpath(); %>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<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 />
不过,一定要遵守"约定优于配置"的原则
<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>
<%@ page language="java" contenttype="text/html; charset=gb18030"
pageencoding="gb18030"%>
<% string context = request.getcontextpath(); %>
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<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 />
不过,一定要遵守"约定优于配置"的原则
<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>
那么根据通配符的原理,对于第一个<a></a>,它的指向是studentaction类中的add方法,则会调用studentadd_success.jsp文件。同理对于第三个<a></a>则会指向teacheraction的add方法,调用teacher_add_success.jsp文件。
通配符的使用使得struts2的配置变得非常简单,它也有自己的原则,即:准确性匹配,越准确则更容易匹配到,例如当由两个action的name都可以匹配到时,它会自动选择更精确的匹配(此时的更精确值得是不含有通配符的情况),在都含有通配符的情况下,好像是哪个在前面哪个更先匹配!
以上就是struts2的通配符的使用的全部内容,希望能给大家一个参考,也希望大家多多支持。
下一篇: PHP实现的观察者模式实例
推荐阅读
-
Struts2学习笔记(4)-通配符的使用
-
struts2学习笔记,很久以前翻出来的,存上-4 博客分类: 很久以前的笔记 strutsmyeclipse
-
Java基础学习笔记13——(StringBuffer的使用,数组高级,Arrays工具类,Integer和Character等包装类)
-
小白VUE学习笔记4:不同报错的解决方法(持续更新)
-
JAVA学习笔记——Javadoc的基本使用
-
Python学习笔记之if语句的使用示例
-
自己学习c++过程中写下的笔记,只做基础了解使用
-
NRF52832学习笔记(4)——GPIO输入中断接口使用
-
STM32F103学习笔记(三):PB3、PB4、PA13、PA14、PA15用作普通IO口的配置
-
Python学习笔记之if语句的使用示例