| <?xml version="1.0" encoding="UTF-8" ?> |
| |
| <!DOCTYPE struts PUBLIC |
| "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" |
| "http://struts.apache.org/dtds/struts-2.0.dtd"> |
| |
| <struts> |
| <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" /> |
| |
| <!-- Only have static injections --> |
| <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" /> |
| <bean class="com.opensymphony.xwork2.util.XWorkConverter" static="true" /> |
| <bean class="com.opensymphony.xwork2.ObjectFactory" static="true" /> |
| |
| <package name="struts-default"> |
| <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="redirect-action" 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-types> |
| |
| <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="createSession" class="org.apache.struts2.interceptor.CreateSessionInterceptor" /> |
| <interceptor name="debugging" class="org.apache.struts2.interceptor.debugging.DebuggingInterceptor" /> |
| <interceptor name="external-ref" 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="model-driven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/> |
| <interceptor name="scoped-model-driven" 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="static-params" class="com.opensymphony.xwork2.interceptor.StaticParametersInterceptor"/> |
| <interceptor name="scope" class="org.apache.struts2.interceptor.ScopeInterceptor"/> |
| <interceptor name="servlet-config" 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="token-session" 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" /> |
| |
| <!-- Basic stack --> |
| <interceptor-stack name="basicStack"> |
| <interceptor-ref name="exception"/> |
| <interceptor-ref name="servlet-config"/> |
| <interceptor-ref name="prepare"/> |
| <interceptor-ref name="checkbox"/> |
| <interceptor-ref name="params"/> |
| <interceptor-ref name="conversionError"/> |
| </interceptor-stack> |
| |
| <!-- Sample validation and workflow stack --> |
| <interceptor-stack name="validationWorkflowStack"> |
| <interceptor-ref name="basicStack"/> |
| <interceptor-ref name="validation"/> |
| <interceptor-ref name="workflow"/> |
| </interceptor-stack> |
| |
| <!-- Sample file upload stack --> |
| <interceptor-stack name="fileUploadStack"> |
| <interceptor-ref name="fileUpload"/> |
| <interceptor-ref name="basicStack"/> |
| </interceptor-stack> |
| |
| <!-- Sample model-driven stack --> |
| <interceptor-stack name="modelDrivenStack"> |
| <interceptor-ref name="model-driven"/> |
| <interceptor-ref name="basicStack"/> |
| </interceptor-stack> |
| |
| <!-- Sample action chaining stack --> |
| <interceptor-stack name="chainStack"> |
| <interceptor-ref name="chain"/> |
| <interceptor-ref name="basicStack"/> |
| </interceptor-stack> |
| |
| <!-- Sample i18n stack --> |
| <interceptor-stack name="i18nStack"> |
| <interceptor-ref name="i18n"/> |
| <interceptor-ref name="basicStack"/> |
| </interceptor-stack> |
| |
| <!-- An example of the params-prepare-params trick. This stack |
| is exactly the same as the defaultStack, except that it |
| includes one extra interceptor before the prepare interceptor: |
| the params interceptor. |
| |
| This is useful for when you wish to apply parameters directly |
| to an object that you wish to load externally (such as a DAO |
| or database or service layer), but can't load that object |
| until at least the ID parameter has been loaded. By loading |
| the parameters twice, you can retrieve the object in the |
| prepare() method, allowing the second params interceptor to |
| apply the values on the object. --> |
| <interceptor-stack name="paramsPrepareParamsStack"> |
| <interceptor-ref name="exception"/> |
| <interceptor-ref name="alias"/> |
| <interceptor-ref name="params"/> |
| <interceptor-ref name="servlet-config"/> |
| <interceptor-ref name="prepare"/> |
| <interceptor-ref name="i18n"/> |
| <interceptor-ref name="chain"/> |
| <interceptor-ref name="model-driven"/> |
| <interceptor-ref name="fileUpload"/> |
| <interceptor-ref name="checkbox"/> |
| <interceptor-ref name="static-params"/> |
| <interceptor-ref name="params"/> |
| <interceptor-ref name="conversionError"/> |
| <interceptor-ref name="validation"> |
| <param name="excludeMethods">input,back,cancel</param> |
| </interceptor-ref> |
| <interceptor-ref name="workflow"> |
| <param name="excludeMethods">input,back,cancel</param> |
| </interceptor-ref> |
| </interceptor-stack> |
| |
| <!-- A complete stack with all the common interceptors in place. |
| Generally, this stack should be the one you use, though it |
| may do more than you need. Also, the ordering can be |
| switched around (ex: if you wish to have your servlet-related |
| objects applied before prepare() is called, you'd need to move |
| servlet-config interceptor up. |
| |
| This stack also excludes from the normal validation and workflow |
| the method names input, back, and cancel. These typically are |
| associated with requests that should not be validated. |
| --> |
| <interceptor-stack name="defaultStack"> |
| <interceptor-ref name="exception"/> |
| <interceptor-ref name="alias"/> |
| <interceptor-ref name="servlet-config"/> |
| <interceptor-ref name="prepare"/> |
| <interceptor-ref name="i18n"/> |
| <interceptor-ref name="chain"/> |
| <interceptor-ref name="debugging"/> |
| <interceptor-ref name="profiling"/> |
| <interceptor-ref name="scoped-model-driven"/> |
| <interceptor-ref name="model-driven"/> |
| <interceptor-ref name="fileUpload"/> |
| <interceptor-ref name="checkbox"/> |
| <interceptor-ref name="static-params"/> |
| <interceptor-ref name="params"> |
| <param name="excludeParams">dojo\..*</param> |
| </interceptor-ref> |
| <interceptor-ref name="conversionError"/> |
| <interceptor-ref name="validation"> |
| <param name="excludeMethods">input,back,cancel,browse</param> |
| </interceptor-ref> |
| <interceptor-ref name="workflow"> |
| <param name="excludeMethods">input,back,cancel,browse</param> |
| </interceptor-ref> |
| </interceptor-stack> |
| |
| <!-- The completeStack is here for backwards compatibility for |
| applications that still refer to the defaultStack by the |
| old name --> |
| <interceptor-stack name="completeStack"> |
| <interceptor-ref name="defaultStack"/> |
| </interceptor-stack> |
| |
| <!-- Sample execute and wait stack. |
| Note: execAndWait should always be the *last* interceptor. --> |
| <interceptor-stack name="executeAndWaitStack"> |
| <interceptor-ref name="execAndWait"> |
| <param name="excludeMethods">input,back,cancel</param> |
| </interceptor-ref> |
| <interceptor-ref name="defaultStack"/> |
| <interceptor-ref name="execAndWait"> |
| <param name="excludeMethods">input,back,cancel</param> |
| </interceptor-ref> |
| </interceptor-stack> |
| |
| </interceptors> |
| |
| <default-interceptor-ref name="defaultStack"/> |
| </package> |
| |
| </struts> |