
# use spring as the object factory
struts.objectFactory=spring

# use the simple theme
struts.ui.theme=simple

# set the struts action extension to 'rol'
struts.action.extension=rol

# dev mode options
struts.devMode=false
struts.configuration.xml.reload=false
struts.i18n.reload=false

# this enables the translation of action="foo!method" to work nicely
struts.enable.DynamicMethodInvocation=true
struts.mapper.action.prefix.enabled=true

# prevent the damn s:url calls from including undesired query params by default
struts.url.includeParams=none

# this tells struts2 what the special name is for our global resource bundle
# eventually we should remove this when the struts2 migration is mostly complete
# and use the highly preferred way of splitting the resource bundles into
# smaller pieces per package or class
struts.custom.i18n.resources=ApplicationResources

# If you want to allow uploads over 1 billion bytes, then set this higher:
struts.multipart.maxSize=1000000000

# By default, Errors, Field errors and Message aren't copied during chaining
# to copy Action Errors
struts.xwork.chaining.copyErrors=true
struts.xwork.chaining.copyMessages=true
