Struts2 -- 配置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2 -- 配置相关的知识,希望对你有一定的参考价值。
1.struts2配置文件加载顺序
struts2框架要能执行,会先加载Web.xml文件中定义的StrutsPrepareAndExecuteFilter.
在StrutsPrepareAndExecuteFilter类的的 init() 方法中对 Dispatcher 进行了初始化.
在Dispatcher类的 init() 方法中描述了struts2配置文件加载的顺序:
init_FileManager(); init_DefaultProperties(); // [1] default.properties 默认常量配置文件。
init_TraditionalXmlConfigurations(); // [2] struts-default.xml, struts-plugin.xml(插件xml配置文件), struts.xml(自定义xml文件) init_LegacyStrutsProperties(); // [3] struts.properties(自定义的常量配置文件) init_CustomConfigurationProviders(); // [5] 自定义配置提供 init_FilterInitParameters() ; // [6] web.xml init_AliasStandardObjects() ; // [7] JavaBean加载
/* 1.default.properties文件
作用:定义了struts2框架中所有常量
位置: org/apache/struts2/default.properties
2.struts-default.xml
作用:配置了bean,interceptor,result等。
位置:在struts的core核心jar包.
struts-plugin.xml
它是struts2框架中所使用的插件的配置文件。
struts.xml
我们使struts2所使用的配置文件。
3.自定义的struts.properties
就是可以自定义常量。
4.web.xml
在开发中,后加载文件中的配置会将先加载文件中的配置覆盖。
default.properties
struts-default.xml
struts.xml
2.action的配置(struts.xml中)
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="" namespace="/" extends="struts-default" abstract=""> <action name="" class="" method="" > <result name="" type=""></result> </action> </package> </struts>
1.<package> 作用:是用于声明一个包。用于管理action。
1.name 它用于声明一个包名,包名不能重复,是唯一的。
2.namespace 它与action标签的name属性合并确定了一个唯一访问action的路径。 默认值为""
3.extends 它代表继承的包名。
4.abstrace 它可以取值为true/false,如果为true,代表这个包是用于被继承的。
2<action> 用于声明 一个action
1.name 就是action的一个名称,它是唯一的(在同包内) 它与package中的namespace确定了访问action的路径。
2.class Action类的全名 默认值为:com.opensymphony.xwork2.ActionSupport
3.method 要访问的Action类中的方法的名称,方法无参数 ,返回值为String. 默认值为:execute()
3.<result> 用于确定返回结果类型
1.name 它与action中的方法返回值做对比,确定跳转路径。默认值是 "success"
2.type 作用:是用于定义跳转方式
type属性的值在struts-defalut.xml中可找到:
<result-type name="chain" class="com.opensymphony.xwork2.ActionChainResult"/>
<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
<result-type name="freemarker" class="org.apache.struts2.views.freemarker.FreemarkerResult"/>
<result-type name="httpheader" class="org.apache.struts2.dispatcher.HttpHeaderResult"/>
<result-type name="redirect" class="org.apache.struts2.dispatcher.ServletRedirectResult"/>
<result-type name="redirectAction" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
<result-type name="stream" class="org.apache.struts2.dispatcher.StreamResult"/>
<result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
<result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
<result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
dispatcher:它代表的是请求转发,也是默认值。它一般用于从action跳转到页面。
chain:它也相当于请求转发。它一般情况下用于从一个action跳转到另一个action。
redirect:它代表的是重定向 它一般用于从action跳转到页面
redirectAction: 它代表的是重定向 它一般用于从action跳转另一个action。
stream:代表的是服务器端返回的是一个流,一般用于下载。
4.默认的action
<default-action-ref name="action的名称" />
作用:配置了这个,当访问的路径,其它的action处理不了时,就会执行name指定的名称的action
5.action的默认处理类
<default-class-ref class="cn.itcast.action.DefaultAction"/>
如果设置了,那么在当前包下,默认处理action请的的处理类就为class指定的类。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- 常量配置 --> <constant name="struts.action.extension" value="action,,"/> <!-- 指定strus2框架默认拦截的后缀名 --> <constant name="struts.i18n.encoding" value="utf-8"></constant> <!-- 解决post请求乱码 --> <constant name="struts.serve.static.browserCache" value="false"></constant> <!-- 设置静态资源缓存 --> <constant name="struts.devMode" value="true"></constant> <!-- 提供详细报错页面,修改struts.xml后不需要重启服务器 --> <package name="demo" namespace="/" extends="struts-default" abstract=""> <!-- 标签写入顺序 1.result-types 2.interceptors 3.default-interceptor-ref 4.default-action-ref 5.default-class-ref 6.global-results 7.global-exception-mappings 8.action* --> <result-types> <result-type name="" class=""></result-type> </result-types> <interceptors> <interceptor name="" class=""></interceptor> <interceptor-stack name=""></interceptor-stack> </interceptors> <default-interceptor-ref name=""></default-interceptor-ref> <default-action-ref name=""></default-action-ref> <!-- 默认的Action:处理其它action处理不了的路径。 --> <default-class-ref class=""></default-class-ref> <!-- action的默认处理类: 将默认处理action请的的处理类更改为指定的class类。 --> <global-results></global-results>
<!-- 全局结果页面。 -->
<global-exception-mappings></global-exception-mappings> <action name="demo" class="" method="" > <result name="" type="">/index.jsp</result> </action> </package> <include file=""></include> <!-- 引入其他xml配置文件 --> </struts>
以上是关于Struts2 -- 配置的主要内容,如果未能解决你的问题,请参考以下文章