<package name="action" namespace="/" extends="struts-default"> class="action.LoginAction" method="execute"> package>/teacher.jsp /student.jsp /error.jsp
当xml文件较大时,可以使用多个xml文件来配置,比如在每个包下使用一个xml来配置这个包的action,在struts.xml中使用
配置命名空间
<package name="action" namespace="/" extends="struts-default"> package>
命名空间常配置为 / 或 /包名。
配置为 / 时,表示这个包下的action都在这个WebApp的命名空间中,可直接通过action的name来引用。
<package name="action" namespace="/" extends="struts-default">LoginAction" class="action.LoginAction" method="execute"> package>/teacher.jsp /student.jsp /error.jsp
配置为 /xxx 时,表示这个包下的action都在命名空间xxx中,要通过命名空间来引用。
<package name="action" namespace="/action" extends="struts-default">class="action.LoginAction" method="execute"> package>/teacher.jsp /student.jsp /error.jsp
注意最前面没有 /
最前面的/表示域名根目录(localhost),不是表示当前WebApp的根目录。这种写法是定位到 http://localhost:8080/LoginAction
设置处理请求的方法
method="exe">
可在
配置结果处理
可在当前action中配置当前action的,也可以在
视图处理方式可以使用type属性来设置,缺省时默认为dispatcher,也可以在struts-default.xml中设置全局的:将default属性设置为true即可
chain" class="com.opensymphony.xwork2.ActionChainResult"/> dispatcher" class="org.apache.struts2.result.ServletDispatcherResult" default="true"/> class="org.apache.struts2.views.freemarker.FreemarkerResult"/> class="org.apache.struts2.result.HttpHeaderResult"/> redirect" class="org.apache.struts2.result.ServletRedirectResult"/> redirectAction" class="org.apache.struts2.result.ServletActionRedirectResult"/> stream" class="org.apache.struts2.result.StreamResult"/> class="org.apache.struts2.result.VelocityResult"/> class="org.apache.struts2.views.xslt.XSLTResult"/> plainText" class="org.apache.struts2.result.PlainTextResult" /> class="org.apache.struts2.result.PostbackResult" />
chain 链式处理,由下一个action接着处理
LoginAction /
需要用2个指定下一个action的信息,actionName指定下一个Action的name,namespace指定下一个action的namespce(一般是 / 或者 /包名 )。
dispatcher 转发给jsp,由jsp来响应。默认值。
/xxx.jsp
redirect 重定向到新的url,可以是任何类型的url。直接写url即可。
/XxxAction /xxx.jsp
重定向到action:命名空间是/,写为/action名;命名空间是/xxx,写为/xxx/action名。
用redirect重定向到action,IDEA会报红,但能通过编译,效果正常。建议用redirectAction,更专业。
redirectAction 重定向到另一个action
LoginAction /
plainText 显示指定页面的源码
/xxx.jsp
只能显示jsp、html等的源码,不能显示action的源码。
stream 向浏览器返回一个InputStream,一般用于文件下载
设置拦截器
<package name="action" namespace="/action" extends="struts-default">class="action.LoginAction" method="exe"> package>
在
可以在
也可在
引用的拦截器、拦截器栈可以是自己定义的,也可以是structs-default.xml中自带的。
可仿照structs-default.xml进行配置。
可直接对 extends="struts-default" 中的struts-default,Ctrl+B找到struts-default.xml,也可以在struts2-core.jar的根目录下找。
Struts2配置中的默认值
<package name="action" namespace="/" extends="struts-default"> <default-interceptor-ref name="">default-interceptor-ref> <default-action-ref name="">default-action-ref> <default-class-ref class="">default-class-ref>class="" method=""> package>
struts-default.xml中的默认配置:
<default-interceptor-ref name="defaultStack"/> <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />
ActionSupport类的execute()方法:
public String execute() throws Exception { return "success"; }