【struts2 配置文件】
1.包配置:
在struts.xml文件中package元素用于定义包配置,每个package元素定义了一个包配置。它的常用属性有:
l name:必填属性,用来指定包的名字。
l extends:可选属性,用来指定该包继承其他包。继承其它包,可以继承其它包中的Action定义、拦截器定义等。
l namespace:可选属性,用来指定该包的命名空间。
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- struts2的action必须放在一个指定的包空间下定义 --> <package name="default" extends="struts-default"> <!-- 定义处理请求URL为login.action的Action --> <action name="login" class="org.caijieru.web.struts.action.LoginAction"> <!-- 定义处理结果字符串和资源之间的映射关系 --> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> </package> </struts>
-->如果没有为action中指定class,默认值是ActionSupport
-->如果没有为action中指定method,默认执行action中的excute()方法
-->如果没有指定result的name属性,默认值是success
2.命名空间配置 :
考虑到同一个Web应用中需要同名的Action,Struts2以命名空间的方式来管理Action,同一个命名空间不能有同名的Action。
Struts2通过为包指定namespace属性来为包下面的所有Action指定共同的命名空间。
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <!-- struts2的action必须放在一个指定的包空间下定义 --> <package name="struts2" extends="struts-default"> <!-- 定义处理请求URL为login.action的Action --> <action name="login" class="org.caijieru.web.struts2.action.LoginAction"> <!-- 定义处理结果字符串和资源之间的映射关系 --> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> </package> <package name="it" extends="struts-default" namespace="/manage"> <!-- 定义处理请求URL为login.action的Action --> <action name="backLogin" class="org.caijieru.web.struts2.action.LoginAction"> <!-- 定义处理结果字符串和资源之间的映射关系 --> <result name="success">/success.jsp</result> <result name="error">/error.jsp</result> </action> </package></struts>
以上配置陪了两个包,struts2和it包,配置it包时指定了该包的命名空间为/manage。
对于包struts2:没有指定namespace属性。如果某个包没有指定namespace属性,即该包使用默认的命名空间,默认为null。
对于包it:指定了命名空间/manage,则该包下所有的Action处理的URL应该是“命名空间/Action名”。如上名为
backLogin的Action,
3.包含配置
<struts> <include file="struts-default.xml"/> <include file="struts-user.xml"/> <include file="struts-book.xml"/> <include file="struts-shoppingCart.xml"/> ...... </struts>
在Struts2中可以将一个配置文件分解成多个配置文件,那么我们必须在struts.xml中包含其他配置文件。
4.Result的各种转发类型
浏览器重定向:就是引导客户的浏览器到指定的路径文件,是不能访问到WEB-INF目录下的文件的。
<action name="helloword" class="com.cxy.HelloWordAction" method="execute"> <result name="success">/jsp路径</result> 内部请求转发 </action> <action name="redirect"> <result type="redirect">/xx.jsp</result> //浏览器重定向 </action>