<struts> <package name="action" namespace="/action" extends="struts-default"> <action name="LoginAction" class="action.LoginAction" method="execute"> <result name="teacher">/teacher.jsp</result> <result name="student">/student.jsp</result> <result name="error">/error.jsp</result> </action> </package> <include file=""></include> </struts>
namespace常用/,或/包名。
当xml文件较大时,可以使用多个xml文件来配置,比如在每个包下使用一个xml来配置这个包的action,在structs.xml中使用<include>把其他xml配置文件包含进来即可。
设置处理请求的方法
<package name="action" namespace="/action" extends="struts-default"> <global-allowed-methods></global-allowed-methods> <action name="loginAction" class="action.LoginAction" method="exe"> <allowed-methods></allowed-methods> </action></package>
可在<action>中使用method属性来设置,可在<allowed-methods></allowed-methods>中设置,也可在<global-allowed-methods></global-allowed-methods>中设置整个包的。
既然是methods,复数形式,就可设置多个方法名。
structs-default.xml中的配置:
<global-allowed-methods>execute,input,back,cancel,browse,save,delete,list,index</global-allowed-methods>
设置页面调用方式
<action name="loginAction" class="action.LoginAction"> <result name="" type="dispatcher"></result> </action>
可在<result>中使用type属性逐个设置,也可以在structs-default.xml中设置全局的:
<result-types> <result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/> <result-type name="dispatcher" class="org.apache.struts2.result.ServletDispatcherResult" default="true"/> <result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/> <result-type name="httpheader" class="org.apache.struts2.result.HttpHeaderResult"/> <result-type name="redirect" class="org.apache.struts2.result.ServletRedirectResult"/> <result-type name="redirectAction" class="org.apache.struts2.result.ServletActionRedirectResult"/> <result-type name="stream" class="org.apache.struts2.result.StreamResult"/> <result-type name="velocity" class="org.apache.struts2.result.VelocityResult"/> <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/> <result-type name="plainText" class="org.apache.struts2.result.PlainTextResult" /> <result-type name="postback" class="org.apache.struts2.result.PostbackResult" /> </result-types>
将default属性设置为true即可。默认为dispatcher,转发。
设置拦截器
<package name="action" namespace="/action" extends="struts-default"> <interceptors> <interceptor name="" class=""></interceptor> <interceptor-stack name=""> <interceptor-ref name="" /> <interceptor-ref name="" /> </interceptor-stack> </interceptors> <default-interceptor-ref name=""></default-interceptor-ref> <action name="loginAction" class="action.LoginAction" method="exe"> <interceptor-ref name=""></interceptor-ref> <interceptor-ref name=""></interceptor-ref> </action> </package>
在<interceptors>中注册拦截器、拦截器栈。
<interceptor>注册一个拦截器,name指定拦截器名,class指定拦截器对应的java类。
<interceptor-stack>注册一个拦截器栈,name指定拦截器栈的名字。<interceptor-ref />指定要引用的拦截器。
可以在<action>中使用<interceptor-ref name=""></interceptor-ref>设置当前<action>要使用的拦截器、拦截器栈,一个<interceptor-ref name=""></interceptor-ref>引用一个拦截器、拦截器栈,可同时使用多个<interceptor-ref name=""></interceptor-ref>。
也可在<default-interceptor-ref name=""></default-interceptor-ref>中设置整个包的默认拦截器、拦截器栈,对此包下所有的action都有效。
引用的拦截器、拦截器栈可以是自己定义的,也可以是structs-default.xml中自带的。
<package>的子元素是有一定顺序的,<action>要放到最后。
可仿照structs-default.xml进行配置。
原文地址:https://www.cnblogs.com/chy18883701161/p/11454591.html