Struts2 包,命名空间,包含 配置(十二)

1.包配置
在Struts2框架中,其核心组件是Action和拦截器等,该框架使用包管理这些组件,在包可以配置多个action,多个拦截器,多个拦截器栈,返回类型。使用<package>元素配置包。可以指定4个属性

属性名 必选 说明
name 指定包的名称,该名称是该包被其他包引用的key值
extends 知道该包继承其他包
namespace 指定哪个该包的命名空间
abstract 指定该包是否是一个抽象包。抽象包中不定义action。


2.命名空间配置
在Struts2中命名空间用namespace的方式来管理Action
因为在Action类中有多个业务处理方法,而客户端请求需要指向不通的方法,此时就需要用命名空间了。
例如:
<package name="myPackage" extends="struts-default" namespace="/tmq">
   <action name="login" class="my.test.Login.Action">
      <result name="success">welcome.jsp</result>
    </action>
</package>
上述的配置后,name为login的action就可以处理下面的URL请求了
http://localhost:8080/struts2/tmq/login.action
http://localhot:8080/struts2/login.action


3.命名空间案例:
<struts>
    <!--配置myPackage包,默认命名空间为空-->
     <package name="myPackage" extends="struts-default">
           <action name="login" class="my.test.LoginAction">
                <result name="success">welcome.jsp</result>
                <result name="Login">login.jsp</result>
           </action>
       </package>

     <package name="myPackage2" extends="struts-default" namespace="/tmq">
           <action name="login" class="my.test.LoginAction2">
                <result name="success">welcome.jsp</result>
                <result name="Login">login.jsp</result>
           </action>
       </package>
       <!---http://localhost:8080/struts/login.action;会先查询非默认命名空间中的login Action如果没有找到 然后才到默认的命名空间-->
</struts>


4.命名空间的注意:
  通过为包指定不通的命名空间,就可以在不同的包中配置name值相同的Action 而框架根据请求的URL,依然可以饿知道使用那个额Action来处理,如果为一个包指定了默认的命名空间,那么该包下的所有Action,额可以处理任何URL中对应的Action请求。
同一个命名空间中的不能包含同名的Actino,不同的命名空间中,可以包含相同的Action。


5.包含配置
<!--_在一个Jsp文件中可以使用<jsp:include>指令,将其他文件包含到该文件中,同样的道理,在struts.xml文件中可以使用包含元素<include>包含其他配置文件-->
<?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>
   <include file="struts-actionchaining.xml"/>
   <include file="struts-fileupload.xml"/>
   <include file="struts-jsf.xml"/>
   <include file="struts-filedownload.xml"/>
   <include file="struts-conversion.xml"/>
   <include file="struts-freemarker.xml"/>
   <includer file="struts-tiles.xml"/>
</struts>

你可能感兴趣的:(namespace,package,include)