Struts2_配置文件

当世界给草籽重压时,它总会用自己的方法破土而出。—我们共勉

Struts2框架中核心组件就是Action、拦截器等,Struts2框架使用包来管理Action和拦截器等。每个包就是多个Action、多个拦截器、多个拦截器引用的集合。下面一起看一下几个struts的配置文件。最核心的是web.xml和struts.xml。

1.web.xml

通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载FilterDispatcher,只要Web应用负责加载FilterDispatcher,FilterDispatcher将会加载Struts2框架。 因为Struts2将核心控制器设计成Filter,而不是一个普通Servlet。故为了让Web应用加载FilterDispatcher,只需要在web.xml文件中配置FilterDispatcher即可。

位置:WebContent/WEB-INF/web.xml

看一下web.xml 的配置文件:


<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

  <filter>

     
    <filter-name>ApacheStruts2filter-name>

      
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilterfilter-class>
     <init-param>  
                
              <param-name>actionPackagesparam-name>  
              <param-value>org.apache.struts2.showcase.personparam-value>  
          init-param>  
            
          <init-param>  
              <param-name>configProvidersparam-name>  
              <param-value>lee.MyConfigurationProviderparam-value>  
          init-param>  
  filter>

    
  <filter-mapping>
     
    <filter-name>ApacheStruts2filter-name>
    <url-pattern>/*url-pattern>
  filter-mapping>
web-app>

详细说下:

<filter>  
        <filter-name>struts2filter-name>  
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterfilter-class>  
filter>  

定义filter,此处加载struts2过滤器。

<filter-mapping>  
        <filter-name>struts2filter-name>  
        <url-pattern>/*url-pattern>  
filter-mapping> 

定义web服务器通知项,即,符合“/*”的URL请求都交给命名为“struts2”的过滤器(即,org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter)处理。

2.struts.xml

干什么的:struts.xml文件主要负责管理应用中的Action映射, 及Action处理结果和物理资源之间的映射关系。

放在哪里:只能放在src文件下。





<struts>
  
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />  
    <constant name="struts.devMode" value="true" />  
    <constant name="struts.i18n.reload" value="true" />  
    <constant name="struts.configuration.xml.reload" value="true" >constant>  

<package name="user" namespace="/user" extends="struts-default">
    
    <action name="login" class="com.lee.action.LoginAction">
        
        <result name="成功" type="dispatcher">/WEB-INF/main.jspresult>
        <result name="失败" type="dispatcher">/index.jspresult>
    action>
package>
struts>

详细说一下:

重要:
name="" method="" class="">  
<result name="" type="">result>  
  

action:
name: 请求名称,加上namespace就是请求路径。
method: 接到请求后执行的方法,默认执行execute(此处表示没有method属性)。
class: 处理方法所在的类,默认为Action(如果没有配置此属性)。
还有一个不常用的属性,converter,Action的类型转换器。
result:
name: Action返回结果,默认为SUCCESS(“success”).
type: 返回的类型,默认为dispatcher。


1."struts.devMode"value="true"/>  

开发阶段配置,在web服务器出错时会尽量打印出来,一样也是生产阶段设置为false,避免后台结构被人发现。

2.<constant name="struts.configuration.xml.reload"value="true"/> 

配置文件修改后是否自动重新部署到服务器,开发阶段需要设置为true,否则需要不时重启服务器。

3.constantnameconstantname="struts.custom.i18n.resources"value="globalMessages"/> 

加载国际化配置文件,多个配置文件则用“,”隔开。

4."struts.action.extension"value="action,,"/>  

默认请求后缀,多个使用”,”隔开。

5.<constant name="struts.i18n.encoding" value="UTF-8" />

指定Web应用的默认编码集,相当于调用HttpServletRequest的setCharacterEncoding方法。

6.<constant name="struts.multipart.maxSize" value="2097152"/> 

multipart请求信息的最大尺寸(文件上传用,该属性指定Struts 2文件上传中整个请求内容允许的最大字节数)。

3.struts-default.xml

地位:这个文件是struts2框架默认加载的配置文件。它定义struts2一些核心的bean和拦截器。

位置:在struts2-core-2.5.8.jar包中。

主要了解一下package中一下内容:

(1).result-types

-- 结果类型的种类-->  

<result-types>  

<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" />  

<result-type name="redirect-action" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>  

<result-type name="plaintext" class="org.apache.struts2.dispatcher.PlainTextResult" />  

result-types>  

(2).interceptors

  

<interceptors>  

  

<interceptor name="alias" class="com.opensymphony.xwork2.interceptor.AliasInterceptor"/>  

  

<interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"/>  

  

<interceptor name="chain" class="com.opensymphony.xwork2.interceptor.ChainingInterceptor"/>  

  

<interceptor name="conversionError" class="org.apache.struts2.interceptor.StrutsConversionErrorInterceptor"/>  

  

<interceptor name="cookie" class="org.apache.struts2.interceptor.CookieInterceptor"/>  

  

<interceptor name="createSession" class="org.apache.struts2.interceptor.CreateSessionInterceptor" />  

  

<interceptor name="debugging" class="org.apache.struts2.interceptor.debugging.DebuggingInterceptor" />  

  

<interceptor name="externalRef" class="com.opensymphony.xwork2.interceptor.ExternalReferencesInterceptor"/>  

  

<interceptor name="execAndWait" class="org.apache.struts2.interceptor.ExecuteAndWaitInterceptor"/>  

  

<interceptor name="exception" class="com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor"/>  

  

<interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor"/>  

  

<interceptor name="i18n" class="com.opensymphony.xwork2.interceptor.I18nInterceptor"/>  

  

<interceptor name="logger" class="com.opensymphony.xwork2.interceptor.LoggingInterceptor"/>  

  

<interceptor name="modelDriven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/>  

  

<interceptor name="scopedModelDriven" class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor"/>  

  

<interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/>  

  

<interceptor name="prepare" class="com.opensymphony.xwork2.interceptor.PrepareInterceptor"/>  

  

<interceptor name="staticParams" class="com.opensymphony.xwork2.interceptor.StaticParametersInterceptor"/>  

  

<interceptor name="scope" class="org.apache.struts2.interceptor.ScopeInterceptor"/>  

  

<interceptor name="servletConfig" class="org.apache.struts2.interceptor.ServletConfigInterceptor"/>  



<interceptor name="sessionAutowiring" class="org.apache.struts2.spring.interceptor.SessionContextAutowiringInterceptor"/>  

  

<interceptor name="timer" class="com.opensymphony.xwork2.interceptor.TimerInterceptor"/>  

  

<interceptor name="token" class="org.apache.struts2.interceptor.TokenInterceptor"/>  

  

<interceptor name="tokenSession" class="org.apache.struts2.interceptor.TokenSessionStoreInterceptor"/>  

  

<interceptor name="validation" class="org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor"/>  

  

<interceptor name="workflow" class="com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor"/>  

  

<interceptor name="store" class="org.apache.struts2.interceptor.MessageStoreInterceptor" />  

  

<interceptor name="checkbox" class="org.apache.struts2.interceptor.CheckboxInterceptor" />  

<interceptor name="profiling" class="org.apache.struts2.interceptor.ProfilingActivationInterceptor" />  

  

<interceptor name="roles" class="org.apache.struts2.interceptor.RolesInterceptor" />  

(3).Basic Stack

  

<interceptor-stack name="basicStack">  

<interceptor-ref name="exception"/>  

<interceptor-ref name="servletConfig"/>  

<interceptor-ref name="prepare"/>  

<interceptor-ref name="checkbox"/>  

<interceptor-ref name="params"/>  

<interceptor-ref name="conversionError"/>  

interceptor-stack>  

(4).bean

  

<bean class="com.opensymphony.xwork2.ObjectFactory" name="xwork" />  

<bean type="com.opensymphony.xwork2.ObjectFactory" name="struts" class="org.apache.struts2.impl.StrutsObjectFactory" />  

<bean type="com.opensymphony.xwork2.ActionProxyFactory" name="xwork" class="com.opensymphony.xwork2.DefaultActionProxyFactory"/>  

<bean type="com.opensymphony.xwork2.ActionProxyFactory" name="struts" class="org.apache.struts2.impl.StrutsActionProxyFactory"/>  

  

<bean type="com.opensymphony.xwork2.util.ObjectTypeDeterminer" name="tiger" class="com.opensymphony.xwork2.util.GenericsObjectTypeDeterminer"/>  

<bean type="com.opensymphony.xwork2.util.ObjectTypeDeterminer" name="notiger" class="com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer"/>  

<bean type="com.opensymphony.xwork2.util.ObjectTypeDeterminer" name="struts" class="com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer"/>  

  

<bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="struts" class="org.apache.struts2.dispatcher.mapper.DefaultActionMapper" />  

<bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="composite" class="org.apache.struts2.dispatcher.mapper.CompositeActionMapper" />  

<bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="restful" class="org.apache.struts2.dispatcher.mapper.RestfulActionMapper" />  

<bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="restful2" class="org.apache.struts2.dispatcher.mapper.Restful2ActionMapper" />  

<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="struts" class="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest" scope="default" optional="true"/>  

<bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="jakarta" class="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest" scope="default" optional="true" />  

  

<bean type="org.apache.struts2.views.TagLibrary" name="s" class="org.apache.struts2.views.DefaultTagLibrary" />  

  

<bean class="org.apache.struts2.views.freemarker.FreemarkerManager" name="struts" optional="true"/>  

<bean class="org.apache.struts2.views.velocity.VelocityManager" name="struts" optional="true" />  

<bean class="org.apache.struts2.components.template.TemplateEngineManager" />  

<bean type="org.apache.struts2.components.template.TemplateEngine" name="ftl" class="org.apache.struts2.components.template.FreemarkerTemplateEngine" />  

<bean type="org.apache.struts2.components.template.TemplateEngine" name="vm" class="org.apache.struts2.components.template.VelocityTemplateEngine" />  

<bean type="org.apache.struts2.components.template.TemplateEngine" name="jsp" class="org.apache.struts2.components.template.JspTemplateEngine" />  

  

<bean type="com.opensymphony.xwork2.util.XWorkConverter" name="xwork1" class="com.opensymphony.xwork2.util.XWorkConverter" />  

<bean type="com.opensymphony.xwork2.util.XWorkConverter" name="struts" class="com.opensymphony.xwork2.util.AnnotationXWorkConverter" />  

<bean type="com.opensymphony.xwork2.TextProvider" name="xwork1" class="com.opensymphony.xwork2.TextProviderSupport" />  

<bean type="com.opensymphony.xwork2.TextProvider" name="struts" class="com.opensymphony.xwork2.TextProviderSupport" />  


  

<bean class="com.opensymphony.xwork2.ObjectFactory" static="true" />  

<bean class="com.opensymphony.xwork2.util.XWorkConverter" static="true" />  

<bean class="com.opensymphony.xwork2.util.OgnlValueStack" static="true" />  

<bean class="org.apache.struts2.dispatcher.Dispatcher" static="true" />  

<bean class="org.apache.struts2.components.Include" static="true" />  

<bean class="org.apache.struts2.dispatcher.FilterDispatcher" static="true" />  

<bean class="org.apache.struts2.views.util.ContextUtil" static="true" />  

<bean class="org.apache.struts2.views.util.UrlHelper" static="true" />  

(5).定义struts默认包

  

<package name="struts-default" abstract="true">  

4.default.properties

地位:默认常量配置

位置:struts.core/org.apache.struts2/default.properties

名称 作用
struts.i18n.encoding=UTF-8 编码格式配置
struts.objectFactory = spring SSH集成时使用
struts.objectFactory.spring.autoWire = name 自动装配
struts.multipart.parser=jakarta 文件上传相关配置
struts.multipart.saveDir= saveDir:上传的临时目录
struts.multipart.maxSize=2097152 maxSize:文件的最大值
struts.action.extension=action,, URL后缀配置,可以自定义。支持/xxxaction和没有后缀/xxx
struts.enable.DynamicMethodInvocation = false 动态方法调用

5.struts.properties

struts.properties 是可以不要的!!!
因为struts.xml文件中有这个节点,你可以把你想写在struts.properties的自定义配置写在 struts.xml文件当中.

在struts2中默认处理的请求后缀为action,或.do,我们可以修改struts.xml 和struts.properties来修改默认的配置。
1、在struts.xml中添加子结点

<constant name="struts.action.extension" value="action,do,webwork" />

2、或者是修改struts.properties文件,添加

struts.action.extension = action,do

Struts2_配置文件_第1张图片

你可能感兴趣的:(struts2,配置文件,struts配置文件,struts-xml,web-xml)