一下离别引见一下几个struts.xml中常用到的标签
1、<include>
运用include标签,能够将一个struts.xml设置文件分割成多个设置文件,然后在struts.xml中运用<include>标签引入其他设置文件。
比方一个网上购物顺序,能够把用户设置、商品设置、定单设置离别放在3个设置文件user.xml、goods.xml和order.xml中,然后在struts.xml中将这3个设置文件引入:
struts.xml:
<?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="user.xml"/> <include file="goods.xml"/> <include file="order.xml"/> </struts>
user.xml:
<?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> <package name="wwfy" extends="struts-default"> <action name="login" class="wwfy.user.LoginAction"> <!--省略Action其他设置--> </action> <action name="logout" class="wwfy.user.LogoutAction"> <!--省略Action其他设置--> </action> </package> </struts>
2、<constant>
在之前提到struts.properties设置文件的引见中,我们曾提到一切在struts.properties文件中定义的属性,都能够设置在struts.xml文件中。而在struts.xml中,是经由过程<constant>标签来举行设置的:
<?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"/> <!--设置编码情势为GB2312--> <constant name="struts.i18n.encoding" value="GB2312"/> <!--省略其他设置信息--> </struts>
3、<package>
1、包属性引见
在Struts2框架中是经由过程包来治理action、result、interceptor、interceptor-stack等设置信息的。包属性以下:
属性 |
是不是必需 |
形貌 |
name | 是 | 包名,作为别的包运用本包的标记 |
extends | 否 | 设置本包继续别的包 |
namespace | 否 | 设置包的定名空间 |
abstact | 否 | 设置为笼统包 |
2、extends属性的详解
当一个包经由过程设置extends属性继续了另一个包的时刻,该包将会继续父包中一切的设置,包括action、result、interceptor等。
由于包信息的猎取是根据设置文件的先后顺序举行的,所以父包必需在子包之前被定义。
平常我们设置struts.xml的时刻,都继续一个名为“struts-default.xml”的包,这是struts2中内置的包。
3、namespace的详解
namespace主如果针对大型项目中Action的治理,更主要的是处置惩罚Action重名题目,由于不在一致个定名空间的Action能够运用雷同的Action名的。
1)如果运用定名空间则URL将转变
比方我们有一下设置文件
<package name="wwfy" extends="struts-default"> <action name="login" class="wwfy.action.LoginAction"> <result>/success.jsp</result> </action> </package>
则此设置下的Action的URL为localhost:8080/login.action
如果为这个包指定了定名空间
<package name="wwfy" extends="struts-default" namespace="/user"> <action name="login" class="wwfy.action.LoginAction"> <result>/success.jsp</result> </action> </package>
则此设置下的Action的URL为localhost:8080/user/login.action
2)默许定名空间
Struts2中如果没有为某个包指定定名空间,该包运用默许的定名空间,默许的定名空间老是""。
3)指定根定名空间
当设置了定名空间为“/”,即指定了包的定名空间为根定名空间时,此时一切根途径下的Action要求都会去这个包中查找对应的资本信息。
倘使前例中途径为http://localhost:8080/login.action则一切http://localhost:8080/*.action都会到设置为根定名空间的包中寻觅资本。
4、<action>与<result>
1、<action>属性引见
属性称号 |
是不是必需 |
功用形貌 |
name | 是 | 要求的Action称号 |
class | 否 | Action处置惩罚类对应细致途径 |
method | 否 | 指定Action中的要领名 |
converter | 否 | 指定Action运用的范例转换器 |
如果没有指定method则默许实行Action中的execute要领。
2、<result>属性引见
属性称号 |
是不是必需 |
功用形貌 |
name | 否 | 对应Action返回逻辑视图称号,默许为success |
type | 否 | 返回效果范例,默许为dispatcher |
3、通配符的运用
跟着result的增添,struts.xml文件也会随之变得愈来愈庞杂。那末就能够运用通配符来简化设置:
例以下面这个案例:
Action为Test.java
public class Test { public String test1(){ return "result1"; } public String test2(){ return "result2"; } public String test3(){ return "result3"; } }
struts.xml中设置为
<package name="wwfy" extends="struts-default"> <action name="test*" class="wwfy.action.test{1}"> <result name="result{1}">/result{1}.jsp</result> </action> </package>
4、接见Action要领的另一种完成体式格局
在Struts2中如果要接见Action中的指定要领,还能够经由过程转变URL要求来完成,将底本的“Action称号.action”改成“Action称号!要领称号.action”在struts.xml中就不须要指定要领名了。
5、<exception-mapping>与<global-exception-mapping>
这两个标签都是用来设置发作非常时对应的视图信息的,只不过一个是Action局限的,一个是包局限的,当一致范例非常在两个局限都被设置时,Action局限的优先级要高于包局限的优先级.这两个标签包括的属性也是一样的:
属性称号 |
是不是必需 |
功用形貌 |
name | 否 | 用来示意该非常设置信息 |
result | 是 | 指定发作非常时显现的视图信息,这里要设置为逻辑视图 |
exception | 是 | 指定非常范例 |
两个标签的示例代码为:
<?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> <package name="default" extends="struts-default"> <global-exception-mappings> <exception-mapping result="逻辑视图" exception="非常范例"/> </global-exception-mappings> <action name="Action称号"> <exception-mapping result="逻辑视图" exception="非常范例"/> </action> </package> </struts>
6、<default-class-ref>
当我们在设置Action的时刻,如果没有为某个Action指定细致的class值时,体系将自动援用<default-class-ref>标签中所指定的类。在Struts2框架中,体系默许的class为ActionSupport,该设置我们能够在xwork的中心包下的xwork-default.xml文件中找到。
有特别须要时,能够手动指定默许的class
package wwfy.action; public class DefaultClassRef { public void execute(){ System.out.println("默许class最先实行……"); } }
在struts.xml中设置
<?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> <package name="wwfy" extends="struts-default"> <!-- 指定默许class为Test --> <default-class-ref class="wwfy.action.DefaultClassRef"/> <action name="test1"> <result>/index.jsp</result> </action> </package> </struts>
7、<default-action-ref>
如果在要求一个没有定义过的Action资本时,体系就会抛出404毛病。这类毛病不可避免,但如许的页面并不友爱。我们能够运用<default-action-ref>来指定一个默许的Action,如果体系没有找到指定的Action,就会指定来挪用这个默许的Action。
<?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> <package name="wwfy" extends="struts-default"> <default-action-ref name="acctionError"></default-action-ref> <action name="acctionError"> <result>/jsp/actionError.jsp</result> </action> </package> </struts>
8、<default-interceptor-ref>
该标签用来设置全部包局限内一切Action所要运用的默许拦截器信息。事实上我们的包继续了struts-default包今后,运用的是Struts的默许设置。我们能够在struts-default.xml中找到相干设置:
<default-interceptor-ref name="defaultStack"/>
在现实开辟过程当中,如果我们有特别的需求是能够转变默许拦截器设置的。当时一旦变动这个设置,“defaultStack”将不再被援用,须要手动最加。
9、<interceptors>
经由过程该标签能够向Struts2框架中注册拦截器或许拦截器栈,平常多用于自定义拦截器或拦截器栈的注册。该标签运用要领以下:
<interceptors> <interceptor name="拦截器名" class="拦截器类"/> <interceptor-stack name="拦截器栈名"> <interceptor-ref name="拦截器名"> </interceptor-stack> </interceptors>
10、<interceptor-ref>
经由过程该标签能够为其地点的Action增加拦截器功用。当为某个Action零丁增加拦截器功用后,<default-interceptor-ref>中所指定的拦截器将不再对这个Action起作用。
11、<global-results>
该标签用于设置包局限内的全局效果集。在多个Action返回雷同逻辑视图的情况下,能够经由过程<global-results>标签一致设置这些物理视图所对应的逻辑视图。
<?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> <package name="wwfy" extends="struts-default"> <global-results> <result name="test">/index.jsp</result> </global-results> </package> </struts>
【相干引荐】
1. XML免费视频教程
2. XML手艺手册
3. 李炎恢XHTML视频教程
以上就是设置struts.xml的实例详解的细致内容,更多请关注ki4网别的相干文章!