欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Struts2学习笔记(4)-通配符的使用

程序员文章站 2024-03-12 17:56:14
通配符是在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>

第一个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>

那么根据通配符的原理,对于第一个<a></a>,它的指向是studentaction类中的add方法,则会调用studentadd_success.jsp文件。同理对于第三个<a></a>则会指向teacheraction的add方法,调用teacher_add_success.jsp文件。

通配符的使用使得struts2的配置变得非常简单,它也有自己的原则,即:准确性匹配,越准确则更容易匹配到,例如当由两个action的name都可以匹配到时,它会自动选择更精确的匹配(此时的更精确值得是不含有通配符的情况),在都含有通配符的情况下,好像是哪个在前面哪个更先匹配!

以上就是struts2的通配符的使用的全部内容,希望能给大家一个参考,也希望大家多多支持。