| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"/> |
| <meta name="Date-Revision-yyyymmdd" content="20140918"/> |
| <meta http-equiv="Content-Language" content="en"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| |
| <title>default.properties</title> |
| |
| <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css"> |
| <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet"> |
| <link href="/css/main.css" rel="stylesheet"> |
| <link href="/css/custom.css" rel="stylesheet"> |
| <link href="/highlighter/github-theme.css" rel="stylesheet"> |
| |
| <script src="//code.jquery.com/jquery-1.11.0.min.js"></script> |
| <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script> |
| <script type="text/javascript" src="/js/community.js"></script> |
| |
| <!-- Matomo --> |
| <script> |
| var _paq = window._paq = window._paq || []; |
| /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ |
| /* We explicitly disable cookie tracking to avoid privacy issues */ |
| _paq.push(['disableCookies']); |
| _paq.push(['trackPageView']); |
| _paq.push(['enableLinkTracking']); |
| (function() { |
| var u="//analytics.apache.org/"; |
| _paq.push(['setTrackerUrl', u+'matomo.php']); |
| _paq.push(['setSiteId', '41']); |
| var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; |
| g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); |
| })(); |
| </script> |
| <!-- End Matomo Code --> |
| </head> |
| <body> |
| |
| <a href="https://github.com/apache/struts" class="github-ribbon"> |
| <img decoding="async" loading="lazy" style="position: absolute; right: 0; border: 0;" width="149" height="149" src="https://github.blog/wp-content/uploads/2008/12/forkme_right_red_aa0000.png?resize=149%2C149" class="attachment-full size-full" alt="Fork me on GitHub" data-recalc-dims="1"> |
| </a> |
| |
| <header> |
| <nav> |
| <div role="navigation" class="navbar navbar-default navbar-fixed-top"> |
| <div class="container"> |
| <div class="navbar-header"> |
| <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle"> |
| Menu |
| <span class="sr-only">Toggle navigation</span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| </button> |
| <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a> |
| </div> |
| <div id="struts-menu" class="navbar-collapse collapse"> |
| <ul class="nav navbar-nav"> |
| <li class="dropdown"> |
| <a data-toggle="dropdown" href="#" class="dropdown-toggle"> |
| Home<b class="caret"></b> |
| </a> |
| <ul class="dropdown-menu"> |
| <li><a href="/index.html">Welcome</a></li> |
| <li><a href="/download.cgi">Download</a></li> |
| <li><a href="/releases.html">Releases</a></li> |
| <li><a href="/announce-2024.html">Announcements</a></li> |
| <li><a href="http://www.apache.org/licenses/">License</a></li> |
| <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li> |
| <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> |
| <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a data-toggle="dropdown" href="#" class="dropdown-toggle"> |
| Support<b class="caret"></b> |
| </a> |
| <ul class="dropdown-menu"> |
| <li><a href="/mail.html">User Mailing List</a></li> |
| <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li> |
| <li><a href="/security.html">Reporting Security Issues</a></li> |
| <li><a href="/commercial-support.html">Commercial Support</a></li> |
| <li class="divider"></li> |
| <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li> |
| <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li> |
| <li class="divider"></li> |
| <li><a href="/maven/project-info.html">Maven Project Info</a></li> |
| <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li> |
| <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a data-toggle="dropdown" href="#" class="dropdown-toggle"> |
| Documentation<b class="caret"></b> |
| </a> |
| <ul class="dropdown-menu"> |
| <li><a href="/birdseye.html">Birds Eye</a></li> |
| <li><a href="/primer.html">Key Technologies</a></li> |
| <li><a href="/kickstart.html">Kickstart FAQ</a></li> |
| <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li> |
| <li class="divider"></li> |
| <li><a href="/getting-started/">Getting Started</a></li> |
| <li><a href="/security/">Security Guide</a></li> |
| <li><a href="/core-developers/">Core Developers Guide</a></li> |
| <li><a href="/tag-developers/">Tag Developers Guide</a></li> |
| <li><a href="/maven-archetypes/">Maven Archetypes</a></li> |
| <li><a href="/plugins/">Plugins</a></li> |
| <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li> |
| <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li> |
| <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li> |
| <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a data-toggle="dropdown" href="#" class="dropdown-toggle"> |
| Contributing<b class="caret"></b> |
| </a> |
| <ul class="dropdown-menu"> |
| <li><a href="/youatstruts.html">You at Struts</a></li> |
| <li><a href="/helping.html">How to Help FAQ</a></li> |
| <li><a href="/dev-mail.html">Development Lists</a></li> |
| <li class="divider"></li> |
| <li><a href="/submitting-patches.html">Submitting patches</a></li> |
| <li><a href="/builds.html">Source Code and Builds</a></li> |
| <li><a href="/coding-standards.html">Coding standards</a></li> |
| <li><a href="/contributors/">Contributors Guide</a></li> |
| <li class="divider"></li> |
| <li><a href="/release-guidelines.html">Release Guidelines</a></li> |
| <li><a href="/bylaws.html">PMC Charter</a></li> |
| <li><a href="/volunteers.html">Volunteers</a></li> |
| <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li> |
| <li><a href="/updating-website.html">Updating the website</a></li> |
| </ul> |
| </li> |
| <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| </nav> |
| </header> |
| |
| |
| <article class="container"> |
| <section class="col-md-12"> |
| <a href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a> |
| <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/core-developers/default-properties.md" title="Edit this page on GitHub">Edit on GitHub</a> |
| <h1 id="defaultproperties">default.properties</h1> |
| |
| <blockquote> |
| <p>All properties can also be set using <a href="constant-configuration">Constant Configuration</a> in an XML configuration file.</p> |
| </blockquote> |
| |
| <p>The framework uses a number of properties that can be changed to fit your needs. To change any of these properties, |
| specify the property key and value in an <code class="language-plaintext highlighter-rouge">default.properties</code> file. The properties file can be locate anywhere |
| on the classpath, but it is typically found under <code class="language-plaintext highlighter-rouge">/WEB-INF/classes</code>.</p> |
| |
| <p>The list of properties can be found in <code class="language-plaintext highlighter-rouge">default.properties</code> (inside <code class="language-plaintext highlighter-rouge">struts2-core.jar</code>).</p> |
| |
| <p><strong>default.properties</strong></p> |
| |
| <figure class="highlight"><pre><code class="language-txt" data-lang="txt"># |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| ### START SNIPPET: complete_file |
| |
| ### Struts default properties |
| ### (can be overridden by a struts.properties file in the root of the classpath) |
| ### |
| |
| ### This can be used to set your default locale and encoding scheme |
| # struts.locale=en_US |
| struts.i18n.encoding=UTF-8 |
| |
| ### if specified, the default object factory can be overridden here |
| ### Note: short-hand notation is supported in some cases, such as "spring" |
| ### Alternatively, you can provide a com.opensymphony.xwork2.ObjectFactory subclass name here |
| # struts.objectFactory = spring |
| |
| ### specifies the autoWiring logic when using the SpringObjectFactory. |
| ### valid values are: name, type, auto, and constructor (name is the default) |
| struts.objectFactory.spring.autoWire = name |
| |
| ### indicates to the struts-spring integration if Class instances should be cached |
| ### this should, until a future Spring release makes it possible, be left as true |
| ### unless you know exactly what you are doing! |
| ### valid values are: true, false (true is the default) |
| struts.objectFactory.spring.useClassCache = true |
| |
| ### ensures the autowire strategy is always respected. |
| ### valid values are: true, false (false is the default) |
| struts.objectFactory.spring.autoWire.alwaysRespect = false |
| |
| ### By default SpringObjectFactory doesn't support AOP |
| ### This flag was added just temporally to check if nothing is broken |
| ### See https://issues.apache.org/jira/browse/WW-4110 |
| struts.objectFactory.spring.enableAopSupport = false |
| |
| ### if specified, the default object type determiner can be overridden here |
| ### Note: short-hand notation is supported in some cases, such as "tiger" or "notiger" |
| ### Alternatively, you can provide a com.opensymphony.xwork2.util.ObjectTypeDeterminer implementation name here |
| ### Note: By default, com.opensymphony.xwork2.util.DefaultObjectTypeDeterminer is used which handles type detection |
| ### using generics. com.opensymphony.xwork2.util.GenericsObjectTypeDeterminer was deprecated since XWork 2, it's |
| ### functions are integrated in DefaultObjectTypeDeterminer now. |
| ### To disable tiger support use the "notiger" property value here. |
| # struts.objectTypeDeterminer = tiger |
| # struts.objectTypeDeterminer = notiger |
| |
| ### Parser to handle HTTP POST requests, encoded using the MIME-type multipart/form-data |
| # struts.multipart.parser=cos |
| # struts.multipart.parser=pell |
| # struts.multipart.parser=jakarta-stream |
| struts.multipart.parser=jakarta |
| ### Uses javax.servlet.context.tempdir by default |
| struts.multipart.saveDir= |
| struts.multipart.maxSize=2097152 |
| struts.multipart.maxFiles=256 |
| struts.multipart.maxStringLength=4096 |
| # struts.multipart.maxFileSize= |
| |
| ### Load custom property files (does not override struts.properties!) |
| # struts.custom.properties=application,org/apache/struts2/extension/custom |
| |
| ### How request URLs are mapped to and from actions |
| ### Vy default 'struts' name is used which maps to DefaultActionMapper |
| # struts.mapper.class=restful |
| |
| ### Used by the DefaultActionMapper |
| ### You may provide a comma separated list, e.g. struts.action.extension=action,jnlp,do |
| ### The blank extension allows you to match directory listings as well as pure action names |
| ### without interfering with static resources, which can be specified as an empty string |
| ### prior to a comma e.g. struts.action.extension=, or struts.action.extension=x,y,z,, |
| struts.action.extension=action,, |
| |
| ### Used by Dispatcher |
| ### If true then Struts serves static content from inside its jar. |
| ### If false then the static content must be available at <context_path>/static |
| struts.serve.static=true |
| |
| ### A path from which a static content is served, it must start with "/" |
| ### and it cannot end with "/" |
| struts.ui.staticContentPath=/static |
| |
| ### Used by FilterDispatcher |
| ### This is good for development where one wants changes to the static content be |
| ### fetch on each request. |
| ### NOTE: This will only have effect if struts.serve.static=true |
| ### If true -> Struts will write out header for static contents such that they will |
| ### be cached by web browsers (using Date, Cache-Content, Pragma, Expires) |
| ### headers). |
| ### If false -> Struts will write out header for static contents such that they are |
| ### NOT to be cached by web browser (using Cache-Content, Pragma, Expires |
| ### headers) |
| struts.serve.static.browserCache=true |
| |
| ### Set this to false if you wish to disable implicit dynamic method invocation |
| ### via the URL request. This includes URLs like foo!bar.action, as well as params |
| ### like method:bar (but not action:foo). |
| ### An alternative to implicit dynamic method invocation is to use wildcard |
| ### mappings, such as <action name="*/*" method="{2}" class="actions.{1}"> |
| struts.enable.DynamicMethodInvocation = false |
| |
| ### Set this to true if you wish to allow slashes in your action names. If false, |
| ### Actions names cannot have slashes, and will be accessible via any directory |
| ### prefix. This is the traditional behavior expected of WebWork applications. |
| ### Setting to true is useful when you want to use wildcards and store values |
| ### in the URL, to be extracted by wildcard patterns, such as |
| ### <action name="*/*" method="{2}" class="actions.{1}"> to match "/foo/edit" or |
| ### "/foo/save". |
| struts.enable.SlashesInActionNames = false |
| |
| ### Disables support for action: prefix |
| struts.mapper.action.prefix.enabled = false |
| |
| ### Blocks access to actions in other namespace than current with action: prefix |
| struts.mapper.action.prefix.crossNamespaces = false |
| |
| ### when set to true, Struts will act much more friendly for developers. This |
| ### includes: |
| ### - struts.i18n.reload = true |
| ### - struts.configuration.xml.reload = true |
| ### - raising various debug or ignorable problems to errors |
| ### For example: normally a request to foo.action?someUnknownField=true should |
| ### be ignored (given that any value can come from the web and it |
| ### should not be trusted). However, during development, it may be |
| ### useful to know when these errors are happening and be told of |
| ### them right away. |
| struts.devMode = false |
| |
| ### when set to true, resource bundles will be reloaded on _every_ request. |
| ### this is good during development, but should never be used in production |
| # struts.i18n.reload=false |
| |
| ### Standard UI theme |
| ### Change this to reflect which path should be used for JSP control tag templates by default |
| struts.ui.theme=xhtml |
| struts.ui.templateDir=template |
| ### Change this to use a different token to indicate template theme expansion |
| struts.ui.theme.expansion.token=~~~ |
| ### Sets the default template type. Either ftl, vm, or jsp |
| struts.ui.templateSuffix=ftl |
| |
| ### Sets a global flag which will escape html body of Anchor, Submit and Component tag |
| ### You can control this flag per tag, e.g.: <s:a ... escapeHtmlTag="true">...</s:a> |
| ### and this take precedence over the global flag |
| # struts.ui.escapeHtmlBody=true |
| |
| ### Configuration reloading |
| ### This will cause the configuration to reload struts.xml when it is changed |
| # struts.configuration.xml.reload=false |
| |
| ### Location of velocity.properties file. defaults to velocity.properties |
| struts.velocity.configfile = velocity.properties |
| |
| ### Comma separated list of VelocityContext classnames to chain to the StrutsVelocityContext |
| struts.velocity.contexts = |
| |
| ### Location of the velocity toolbox |
| struts.velocity.toolboxlocation= |
| |
| ### used to build URLs, such as the UrlTag |
| struts.url.http.port = 80 |
| struts.url.https.port = 443 |
| ### possible values are: none, get or all |
| struts.url.includeParams = none |
| |
| ### Load custom default resource bundles |
| # struts.custom.i18n.resources=testmessages,testmessages2 |
| |
| ### Control whether to search the default resource bundes for messages first (if true) or not (if false). |
| ### Default is false (when not set). |
| # struts.i18n.search.defaultbundles.first=false |
| |
| ### workaround for some app servers that don't handle HttpServletRequest.getParameterMap() |
| ### often used for WebLogic, Orion, and OC4J |
| struts.dispatcher.parametersWorkaround = false |
| |
| ### configure the Freemarker Manager class to be used |
| ### Allows user to plug-in customised Freemarker Manager if necessary |
| ### MUST extends off org.apache.struts2.views.freemarker.FreemarkerManager |
| # struts.freemarker.manager.classname=org.apache.struts2.views.freemarker.FreemarkerManager |
| |
| ### Enables caching of FreeMarker templates |
| ### Has the same effect as copying the templates under WEB_APP/templates |
| # struts.freemarker.templatesCache=false |
| |
| ### Enables caching of models on the BeanWrapper |
| struts.freemarker.beanwrapperCache=false |
| |
| ### See the StrutsBeanWrapper javadocs for more information |
| struts.freemarker.wrapper.altMap=true |
| |
| ### maxStrongSize for MruCacheStorage for freemarker, when set to 0 SoftCacheStorage which performs better in heavy loaded application |
| ### check WW-3766 for more details |
| struts.freemarker.mru.max.strong.size=0 |
| |
| ### configure the XSLTResult class to use stylesheet caching. |
| ### Set to true for developers and false for production. |
| struts.xslt.nocache=false |
| |
| ### Whether to always select the namespace to be everything before the last slash or not |
| struts.mapper.alwaysSelectFullNamespace=false |
| |
| ### Whether to fallback to empty namespace when request namespace does not match any in configuration |
| struts.actionConfig.fallbackToEmptyNamespace=true |
| |
| ### Whether to allow static field access in OGNL expressions or not |
| struts.ognl.allowStaticFieldAccess=true |
| |
| ### Whether to throw a RuntimeException when a property is not found |
| ### in an expression, or when the expression evaluation fails |
| struts.el.throwExceptionOnFailure=false |
| |
| ### Logs as Warnings properties that are not found (very verbose) |
| struts.ognl.logMissingProperties=false |
| |
| ### Specify the OGNL expression cache factory and BeanInfo cache factory to use. |
| ### Currently, the default implementations are used, but can be replaced with custom ones if desired. |
| # struts.ognl.expressionCacheFactory=customOgnlExpressionCacheFactory |
| # struts.ognl.beanInfoCacheFactory=customOgnlBeanInfoCacheFactory |
| |
| ### Specifies the type of cache to use for parsed OGNL expressions. See StrutsConstants class for further information. |
| struts.ognl.expressionCacheType=wtlfu |
| |
| ### Specifies the maximum cache size for parsed OGNL expressions. This should be configured based on the cache type |
| ### chosen and application-specific needs. |
| struts.ognl.expressionCacheMaxSize=10000 |
| |
| ### Specifies the type of cache to use for BeanInfo objects. See StrutsConstants class for further information. |
| struts.ognl.beanInfoCacheType=wtlfu |
| |
| ### Specifies the maximum cache size for BeanInfo objects. This should be configured based on the cache type chosen and |
| ### application-specific needs. |
| struts.ognl.beanInfoCacheMaxSize=10000 |
| |
| ### Indicates if Dispatcher should handle unexpected exceptions by calling sendError() |
| ### or simply rethrow it as a ServletException to allow future processing by other frameworks like Spring Security |
| struts.handle.exception=true |
| |
| ### Applies maximum length allowed on OGNL expressions for security enhancement (optional) |
| ### |
| ### **WARNING**: If developers change this option (by configuration) they should make sure that they understand |
| ### the implications of setting 'struts.ognl.expressionMaxLength'. They must choose a value large enough to permit |
| ### ALL valid OGNL expressions used within the application. Values larger than the 200-400 range have diminishing |
| ### security value (at which point it is really only a "style guard" for long OGNL expressions in an application. |
| ### Setting a value of null or "" will also disable the feature. |
| struts.ognl.expressionMaxLength=256 |
| |
| ### Defines which named instance of DateFormatter to use, there are two instances: |
| ### - simpleDateFormatter (based on SimpleDateFormat) |
| ### - dateTimeFormatter (based on Java 8 Date/Time API) |
| ### These formatters are using a slightly different patterns, please check JavaDocs of both and more details is in WW-5016 |
| struts.date.formatter=dateTimeFormatter |
| |
| ### Defines which instance of QueryStringBuilder to use, Struts provides just one instance: |
| ### - strutsQueryStringBuilder |
| ### The builder is used by UrlHelp to create a proper Query String out of provided parameters map |
| struts.url.queryStringBuilder=strutsQueryStringBuilder |
| |
| ### Defines which instance of QueryStringParser to use, Struts provides just one instance: |
| ### - strutsQueryStringParser |
| ### The parser is used to parse Query String into a map |
| struts.url.queryStringParser=strutsQueryStringParser |
| |
| ### Defines which instances of encoder and decoder to use, Struts provides one default implementation for each |
| struts.url.encoder=strutsUrlEncoder |
| struts.url.decoder=strutsUrlDecoder |
| |
| ### END SNIPPET: complete_file</code></pre></figure> |
| |
| |
| </section> |
| </article> |
| |
| |
| <footer class="container"> |
| <div class="col-md-12"> |
| Copyright © 2000-2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. |
| Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are |
| trademarks of The Apache Software Foundation. All Rights Reserved. |
| </div> |
| <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div> |
| </footer> |
| |
| <script>!function (d, s, id) { |
| var js, fjs = d.getElementsByTagName(s)[0]; |
| if (!d.getElementById(id)) { |
| js = d.createElement(s); |
| js.id = id; |
| js.src = "//platform.twitter.com/widgets.js"; |
| fjs.parentNode.insertBefore(js, fjs); |
| } |
| }(document, "script", "twitter-wjs");</script> |
| <script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script> |
| |
| <div id="fb-root"></div> |
| |
| <script>(function (d, s, id) { |
| var js, fjs = d.getElementsByTagName(s)[0]; |
| if (d.getElementById(id)) return; |
| js = d.createElement(s); |
| js.id = id; |
| js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1"; |
| fjs.parentNode.insertBefore(js, fjs); |
| }(document, 'script', 'facebook-jssdk'));</script> |
| |
| |
| </body> |
| </html> |