(二)Struts2的通配符配置

首先需要注意的是Struts2的struts.xml,必须要遵循一个规范,那就是 约定优于配置.


在Struts2中,为了减少配置量,而使用了通配符的配置.


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <constant name="struts.devMode" value="true" />
    <package name="actions" extends="struts-default" namespace="/actions">
        <action name="Student*" class="org.credo.action.StudentAction" method="{1}">
            <result>/Student{1}_success.jsp</result>
        </action>
        
        <action name="*_*" class="org.credo.action.{1}Action" method="{2}">
            <result>/{1}_{2}_success.jsp</result>
            <!-- {0}_success.jsp -->
        </action>
    </package>
</struts>


UI页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>

<% String context = request.getContextPath(); %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
  <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>


可以看到,第一个action配置,对应UI中的2个学生.

如果点击第一个"添加学生",那么 第一个action配置中的*就是 add.

那么配制中的method也就是 add方法体.进入方法体将会执行add方法.  删除学生就是执行delete方法.

这个是通配符的简易应用.


现在再看第二个配置.就是下面这些配置:

<action name="*_*" class="org.credo.action.{1}Action" method="{2}">
            <result>/{1}_{2}_success.jsp</result>
            <!-- {0}_success.jsp -->
        </action>

而在UI中,如果是 Teacher_add,那么class就是com.bjsxt.struts2.action.TeacherAction,method就是add.那么就会进入action-->TeacherAction,寻找并执行add方法.

如果成功了,那么就跳转到result=success中的页面 /{1}_{2}_success.jsp==>Teacher_add_success.jsp. 


所以你可以发现,使用通配符后,你新建的action,UI页面,完全可以按照这个配置的规则.而不需要在struts.xml中写新的配置.


所以使用通配符,必须要在小组内约定好规则.写一份详细的文档,不费多少时间的,但能给整个项目的开发带来效率.文档宁可让人觉得罗嗦,别让人觉得搞不清楚细节.

你可能感兴趣的:((二)Struts2的通配符配置)