Apache Struts Changelog

What's new in Apache Struts 2.3.24.1

Sep 28, 2015
  • Contains fix related to S2-026 security bulletin.

New in Apache Struts 2.5 Beta 1 (Aug 8, 2015)

  • XWork source was merged into Struts Core source, it means that there be no more xwork artifact nor dedicated jar
  • OGNL was upgraded to version 3.0.11 and it breaks access to properties as it follows Java Bean Specification, see WW-4207 and WW-3909
  • Spring dependency for tests and spring plugin was upgraded to version 4.1.6, see WW-4510.
  • Struts2 internal logging api was marked as deprecated and was replaced with new Log4j2 api as logging layer, see WW-4504.
  • Struts2 is now build with JDK7, see WW-4503.
  • New plugin to support bean validation is now part of the distribution, see WW-4505.
  • Deprecated plugins are now removed from the distribution and are not longer supported anymore.
  • Dojo Plugin
  • Codebehind Plugin
  • JSF Plugin
  • Struts1 Plugin

New in Apache Struts 2.3.20.1 (May 8, 2015)

  • Contains fix related to S2-024 security bulletin

New in Apache Struts 2.3.20 (Dec 22, 2014)

  • Bug:
  • [WW-2957] - The response charset encoding is overridden by XSL Result type when no xsl template is provided.
  • [WW-3008] - File Upload Interceptor doesn't display i18n message while error occured.
  • [WW-3038] - com.opensymphony.xwork2.ActionSupport's locale property is always set to platform's default locale
  • [WW-3048] - %{getText('login.username')} always uses the en_US locale instead of ActionContext's locale
  • [WW-3099] - Applet tag is not working with struts 2 result tag
  • [WW-3134] - devmode=false still shows NoSuchMethodException
  • [WW-3286] - CLONE -NullPointerException on ComponentTagSupport.doStartTag using jsp:include or s:include
  • [WW-3345] - Disabled select lists
  • [WW-3348] - IndexOutOfBoundsException in ValueStackDataSource
  • [WW-3382] - Struts 2.1.8.1 s:a tags are not rendering link text
  • [WW-3415] - Issues with Token session interceptor - Blank page is returned in case of double submission
  • [WW-3423] - freemarker error in simple template select.ftl when parameter multiple="true" and parameter name is missing
  • [WW-3485] - Map of beans mapping behaviour in Struts 2.2 seems to have changed from 2.1.8.1
  • [WW-3506] - JasperReports PDF does not display in IE using HTTPS
  • [WW-3521] - I18n issure. If you configed default locale in struts.xml, when you request by other locale, the default locale returned.
  • [WW-3533] - Using @VisitorFieldValidator loses TextProvider from action
  • [WW-3584] - convertToString in custom StrutsTypeConverter not called for multiple-valued tags (checkboxlist and select)
  • [WW-3595] - Unable to evaluate Long property in redirectAction
  • [WW-3675] - Plugin - Config Browser : Error when action extension is blank (Unnecessary comma in default location)
  • [WW-3698] - jasperreports plugin's ValueStackDataSource converts field values in ValueStackDataSource even when it's not wanted
  • [WW-3895] - Synchronization on HttpSession object
  • [WW-3911] - Extends differences when in single struts.xml compared to imported via includes
  • [WW-3921] - s:select rendering
  • [WW-3932] - Deployed from EAR PackageBasedActionConfigBuilder not find Action classes on Glassfish application server
  • [WW-3992] - TypeConversion fails in Struts 2.3.8 in devMode due to configuration xml reload instead of annotation config
  • [WW-4041] - JSONValidationInterceptor and quotes in message
  • [WW-4045] - Null Pointer Exception on DefaultActionValidatorManager
  • [WW-4055] - Convention plugin doesn't find any Action classes in EAR deployment on Weblogic 10 and 12
  • [WW-4146] - cache attack at OgnlUtil.expressions
  • [WW-4155] - package.properties getting overlapped if two different jar contains properties file at the same package
  • [WW-4156] - Spring DI problem on Action Intialization
  • [WW-4165] - Form attribute "includeContext" is being inserted as a dynamicAttribute
  • [WW-4167] - Unable to create a custom validator inheriting IntRangeFieldValidator
  • [WW-4169] - Freemarker template expansion wrong if action includes slashes
  • [WW-4179] - Error messages from JakartaMultiPartRequest are not in the correct language
  • [WW-4180] - Model sets twice if result type Chain
  • [WW-4181] - s:radio not selecting initial value correctly
  • [WW-4187] - ServletRedirectResult only works with a limited set of hardcoded URL protocols
  • [WW-4189] - SubmitHandler does not render the "name" attribute when using the s:submit "action" attribute
  • [WW-4198] - Template form-close-validate.ftl incompatible with URLValidator
  • [WW-4202] - CustomTextProvider not used for validation errors of model driven actions
  • [WW-4231] - There are misspell in resource of Dojo calendar plugin
  • [WW-4235] - JSONResult is missing DEFAULT_PARAM
  • [WW-4237] - Locale is not fetched correctly if array of locales is passed
  • [WW-4240] - TypeConversionErrors with Maps
  • [WW-4241] - Negative Integers not submitted when language is arabic
  • [WW-4244] - ShowConfigAction.execute() throws InstantiationException when the Action has NO nullary constructor
  • [WW-4248] - HelloWorld.jsp internalization doesnt work in spanish cultures
  • [WW-4251] - S:token does not generate any hidden value
  • [WW-4253] - radiomap xhtml template
  • [WW-4254] - datetimepicker's label broken
  • [WW-4255] - Missing interface org/apache/struts2/views/TagLibrary
  • [WW-4257] - ParametersInterceptor uses same method on ParameterNameAware interface to validate parameters and properties
  • [WW-4258] - https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2examples/themes THe new parameters ( 2013-12-13 ) KUTheme cannot see the xhtml files from struts2-core any more
  • [WW-4259] - Parameter is NULL when Submitting form with parameters using URL contains querystring consisted of some fields
  • [WW-4261] - https://svn.apache.org/repos/asf/struts/sandbox/trunk/struts2examples/
  • [WW-4262] - TextParseUtil.translateVariables throws NPE when called from Interceptor Init() method
  • [WW-4263] - DefaultHttpHeaders.compareIfModifiedSince() throws ParseException when the locale of the web browser is different to the server
  • [WW-4264] - notifyDeveloper method logs error even when devMode is set false
  • [WW-4266] - resource reloading does not work in IBM JVM
  • [WW-4267] - When devMode is enabled via CustomConfigProvider it is not possible to enable reloading automatically
  • [WW-4275] - Cast exception on Supressing empty parameters on tag
  • [WW-4286] - Upgrade commons-fileupload
  • [WW-4289] - SpringObjectFactory does not obey InitializingBean interface
  • [WW-4295] - provide better documentation and / or functionality for localization of struts2 tag elements (select, radio, etc.)
  • [WW-4297] - XHTML validations for s:hidden in form
  • [WW-4298] - TemplateException: Error reading included file template/~~~as_admin/dynamic-attributes.ftl
  • [WW-4299] - Components: "id" parameter is deleted
  • [WW-4302] - XmlConfigurationProvider.loadedFileUrls only contains the last one of urls with same file name
  • [WW-4313] - freemaker Checkboxlist not rendering id correctly
  • [WW-4317] - datetimepicker does not work where form theme=simple
  • [WW-4318] - Logging message when OgnlValueStack fail to set expression is cryptic most of the time
  • [WW-4319] - struts2-jquery-plugin custom tag templates broken
  • [WW-4321] - ActionConfig constructor lost one properties
  • [WW-4330] - ServletRedirectResult and ServletActionRedirectResult do not support parameters on absolute URLs
  • [WW-4331] - ConventionUnknownHandler throws null
  • [WW-4333] - ExcludedPatterns.CLASS_ACCESS_PATTERN is too restrictive
  • [WW-4334] - sx:autocomplete not working since 2.3.16.1
  • [WW-4335] - Error while extending a theme if located in a deep hierarchy
  • [WW-4336] - Action tag does not process list type parameters correctly
  • [WW-4346] - Nested visitor validator returns wrong full field name
  • [WW-4349] - Missing revision number in struts_dojo.js
  • [WW-4350] - OgnlValueStack causes race condition
  • [WW-4352] - xslt result and utf-8 characters
  • [WW-4354] - ParametersInterceptor's isWithinLengthLimit() method ignores devMode
  • [WW-4360] - Fix potential NullPointerExceptions in xwork-core
  • [WW-4365] - Problems with "optiontransferselect, attributes doubleHeaderKey and doubleHeaderValue"
  • [WW-4369] - Issue in finding converter for primitive types
  • [WW-4374] - access enum values via ognl blocked by SecurityMemberAccess
  • [WW-4378] - ParametersInterceptor: param name exceeding paramNameMaxLength logs wrong message
  • [WW-4380] - URL parameter can not be setted to the form When the contains the word "class", case insensitive
  • [WW-4383] - An infinite loop occurs in FastByteArrayOutputStream.java.
  • [WW-4387] - Preselect multiple options not working in when key is not a string
  • [WW-4390] - paramsPrepareParamsStack ignored excludeParams parameter in second params-Interceptor
  • [WW-4398] - Parameters mapping to java.util.Set of complex type doesn't work
  • [WW-4399] - struts2-archetype-angularjs uses absolute paths
  • [WW-4407] - LocalizedTextUtil reports WARNings when app uses more than one resource bundle
  • [WW-4408] - NPE with ActionContext.getContext().getSession() / RequestWrapper
  • [WW-4420] - Character encoding changes between 2.3.16 and 2.3.19
  • Improvement:
  • [WW-1832] - Support template overriding
  • [WW-3025] - Parameters get lost when file upload over max size allowed
  • [WW-3764] - Reading(theme.properties)PropertyFileFromFileSystem doesn't include templatePath value from web.xml
  • [WW-3849] - Hability PrefixBasedActionMapper to exclude the prefix when retrieveing the ActionMapper
  • [WW-3887] - Refactor problem report generation in Dispatcher
  • [WW-3901] - Review usage of Container and switch to ObjectFactory instead
  • [WW-3913] - Switch to Git
  • [WW-3968] - Cleanup logic regarding DMI in DefaultActionMapper
  • [WW-4024] - Support expressions for scheme attribute in s:url
  • [WW-4049] - Avoid using Locale.setDefault() in tests
  • [WW-4101] - RegexFieldValidator should precompile patterns
  • [WW-4110] - struts2+spring intergration,when user aop, maybe inject fail
  • [WW-4150] - Support attributes with hyphens in tag dynamic attributes
  • [WW-4157] - Move docs export to Maven release phase
  • [WW-4160] - Construct UnknownHandler using Spring
  • [WW-4166] - Allow "class" attribute on Struts tags
  • [WW-4170] - Allow String arrays/iterables to be passed as params to redirectAction result
  • [WW-4205] - Omit empty URL parameters
  • [WW-4208] - Allow customization of validation messages by passing arguments to the validator for the message
  • [WW-4209] - struts.xml not found when using tomcat Virtual webapp
  • [WW-4215] - CDI plugin does not allow constructor injection
  • [WW-4224] - Collection Parameters for RedirectResults
  • [WW-4228] - OGNL Basic: if AllowStaticMethodAccess is set to true, JSP fragments included with can access Action members, otherwise they can't.
  • [WW-4234] - Ability to catch service layer exceptions at one place and allow adding action messages/errors before results are rendered
  • [WW-4250] - Make ParametersInterceptor supports chinese in hash key by default
  • [WW-4252] - ComponentTagSupport should use TagUtils to gain access to Container instead directly calling Dispatcher.getInstance()
  • [WW-4260] - themes.properties cannot be loaded using ServletContext
  • [WW-4265] - Add data-inline="true", data-mini="true" to s:checkboxlist tag css3
  • [WW-4268] - Upgrade to Commons Lang3 3.2 version
  • [WW-4271] - Improve loggign level in JSONUtil to avoid excessive logs
  • [WW-4274] - DefaultActionInvocation shows invalid log
  • [WW-4283] - Improve labelposition attribute
  • [WW-4290] - DefaultTypeConverter primitiveDefaults should be static
  • [WW-4292] - Don't use ServletContext when it can be referenced via field
  • [WW-4300] - Update getting started tutorials with new location for example app source code
  • [WW-4308] - Struts fileupload function can not get file upload process data
  • [WW-4322] - Migrate debug=browser|console to jQuery
  • [WW-4327] - Improve form tags
  • [WW-4343] - Please create public get* methods or set private member to protected.
  • [WW-4363] - Support freemarker views in portlet resource phase.
  • [WW-4379] - LocalizedTestUtil by ClassLoader
  • [WW-4389] - Typo in key struts.messages.error.file.too.large
  • [WW-4396] - Disable velocity logging in example apps
  • [WW-4400] - Replace outdated AngularJS version with latest stable AngularJS version
  • [WW-4423] - Improve random engine used to generate value of token
  • [WW-4425] - tiles jar version conflict
  • New Feature:
  • [WW-3493] - New tag datetextfield
  • [WW-4185] - make default json date format configurable
  • [WW-4326] - Bill of Materials POM
  • Task:
  • [WW-4351] - Struts2 TagUtils
  • Internal Changes:
  • (warning) Merged security fixes from version 2.3.16.1, 2.3.16.2, 2.3.16.3
  • (warning) Extended existing security mechanism to block access to given Java packages and Classes, see #11 or read Internal security mechanism
  • Collection Parameters for RedirectResults, WW-4224
  • Make ParametersInterceptor supports chinese in hash key by default, WW-4250
  • themes.properties can be loaded using ServletContext allows to put template folder under WEB-INF or on classpath, WW-4260
  • New tag datetextfield, WW-3493
  • Only valid Ognl expressions are cached, WW-4146
  • CustomTextProvider can be used for validation errors of model driven actions, WW-4202
  • datetimepicker's label fixed, WW-4254
  • PropertiesJudge removed and properties are checked in SecurityMemberAccess, WW-4257
  • resource reloading works in IBM JVM, WW-4266
  • default reloading settings were removed from default.properties, WW-4267
  • (warning) commons-fileupload library upgraded to version 1.3.1 to fix potential security vulnerability, WW-4286
  • The scheme attribute accepts expressions in s:url tag, WW-4024
  • Solves problem with infinite loop in FastByteArrayOutputStream, WW-4383
  • LocalizedTextUtil supports many ClassLoaders, WW-4379
  • Bill of Materials pom was introduced, WW-4326
  • debug=browser|console was migrated to jQuery, WW-4322
  • struts_dojo.js was fixed, WW-4349
  • interface org/apache/struts2/views/TagLibrary was restored and marked as @Depreacted, WW-4255
  • and many other small improvements, please see the release notes

New in Apache Struts 2.3.16.3 (May 8, 2014)

  • Extends excluded params to avoid manipulation of Struts' internals via CookieInterceptor

New in Apache Struts 2.3.16.2 (Apr 29, 2014)

  • Internal Changes:
  • Improves excluded params to avoid ClassLoader manipulation via ParametersInterceptor
  • Adds excluded params to CookieInterceptor to avoid ClassLoader manipulation when the interceptors is configured to accept all cookie names (wildcard matching via "*")

New in Apache Struts 2.3.16.1 (Mar 6, 2014)

  • Internal Changes:
  • Upgrades Commons FileUpload to version 1.3.1 to prevent DoS attacks
  • Excludes 'class' parameter name to avoid ClassLoader manipulation via ParametersInterceptor

New in Apache Struts 2.3.16 (Dec 16, 2013)

  • Bug:
  • [WW-3603] - XWorkMapPropertyAccessor always create new map entries
  • [WW-3651] - Struts 2 is calling response.setLocale even though it will not handle the request
  • [WW-3826] - Unit Testing A Portlet Action Using StrutsTestCase Causes A NullPointerException
  • [WW-3832] - Convention cannot work when "struts.convention.result.flatLayout" set to FALSE
  • [WW-3873] - file tag leaks server path information
  • [WW-3909] - Not set parameter value to Action correctlly
  • [WW-3938] - s:include problem with hrml comment
  • [WW-4023] - ParametersInterceptor produces a warning when parameter method:* is set
  • [WW-4044] - executeResult="true" generate an infinite loop wheen the result type is tiles3
  • [WW-4064] - WW-3698 cause ClassCastException
  • [WW-4066] - Submitting form with parameters using brackets while devMode=true yields StringIndexOutOfBoundsException
  • [WW-4099] - Javadoc for ActionSupport.getText() incorrectly states null is returned when no message is found
  • [WW-4100] - "error" result defined in global-results is ignored when using convention plugin
  • [WW-4103] - When an action is not found an error which cannot be silenced is logged when not in dev mode
  • [WW-4112] - RestFul2ActionMapper error in documentation
  • [WW-4113] - Wrong cache key generated in OGNL 3.0.5/3.0.6
  • [WW-4115] - Wasted work in ValidateVisitor.getJspAttribute()
  • [WW-4116] - Wasted work in PackageBasedActionConfigBuilder.checkPackageLocators()
  • [WW-4117] - RolesInterceptor ignores disallowedRoles when allowedRoles are configured
  • [WW-4119] - Wasted work in RefreshModelBeforeResult.beforeResult()
  • [WW-4120] - Wasted work in ValidateVisitor.isExpression()
  • [WW-4121] - Wasted work in RolesInterceptor.isAllowed()
  • [WW-4122] - Wasted work in AnnotationParameterFilterIntereptor.intercept()
  • [WW-4123] - Wasted work in MethodFilterInterceptorUtil.applyMethod()
  • [WW-4124] - Wasted work in ValidateVisitor.checkXmlAttributes()
  • [WW-4125] - Wasted work in Struts1Factory.convertErrors()
  • [WW-4126] - Incorrect behavior for ELSupport.containsNulls()
  • [WW-4127] - different commons-io versions in struts2-core
  • [WW-4129] - Tag s:chekbox is very slow when devMode is enabled
  • [WW-4131] - RestActionProxyFactory is handling all requests with PrefixBasedActionMapper
  • [WW-4132] - OGNL Warning, [even struts.devMode is false] while using ! symbol in struts submit tag
  • [WW-4134] - MessageStoreInterceptor java.lang.IllegalStateException if there is no session
  • [WW-4137] - Parameter warnings being generated in logs after 2.3.7 in portlet
  • [WW-4138] - OgnlTextParser contains a NPE when the expression is passed in as null
  • [WW-4139] - Validation of non-default methods not being executed
  • [WW-4140] - Security Improvement
  • [WW-4142] - jQuery plugin menu tag renders an unexpected toString() after upgrading to 2.3.15
  • [WW-4145] - file.ftl in xhtml theme directly references xhtml controlfooter.ftl
  • [WW-4152] - Concurrency issue in strust2 app deployed in JBoss AS7
  • [WW-4153] - Struts2 select tag broken if multiple attribute is used and name attribute is not specified
  • [WW-4154] - Global settings can be omitted in ParametersInterceptor when action implements ParameterNameAware interface
  • [WW-4163] - Add DEFAULT_PARAM to JSONResult
  • [WW-4168] - NullPointerException on Checkboxlist
  • [WW-4177] - get NPE when upgrade from 2.3.4 to 2.3.15.1
  • [WW-4182] - NullPointerException in DefaultUrlHelper
  • [WW-4186] - Constant struts.ognl.enableExpressionCache is not assigned in the property enableExpressionCache in class OgnlUtil
  • [WW-4191] - Excessive 404 error logging
  • [WW-4193] - OGNL WARN msg in log when user enters invalid data
  • [WW-4194] - Using findValue() for value stack to retrieve component parameters always returns not-null object for any parameter name
  • [WW-4199] - Exclusion of URLs should be done before calling prepare.
  • [WW-4206] - struts2-cdi-plugin-2.3.15.x.jar missing from 2.3.15.2 distro
  • [WW-4217] - dead link in cwiki documentation for param
  • [WW-4218] - Example struts2-archetype-starter is broken if created from catalog
  • [WW-4223] - tag throws NPE when used with Jetty
  • [WW-4247] - jetty-maven-plugin configuration problem in struts2-archetype-blank
  • Improvement:
  • [WW-3872] - Add Portlet / Tiles example apps
  • [WW-4088] - Supressing empty parameters on tag
  • [WW-4108] - small typo in documentation
  • [WW-4109] - ParameterNameAware Javadoc incorrect
  • [WW-4111] - Restful2ActionMapper add test to documentation
  • [WW-4118] - Allow RolesInterceptor to validate role names
  • [WW-4128] - Document that I18nInterceptor sets the Locale according to browser settings
  • [WW-4130] - Use SiteExporter instead of wget to export docs
  • [WW-4136] - Demonstrate proper input sanitizing for file download showcase example
  • [WW-4141] - Support for saving locale in cookie
  • [WW-4143] - Add actionMapper that ignores prefixes
  • [WW-4144] - Have ObjectFactory buildResult obey ParameterNameAware restrictions for a Result
  • [WW-4162] - Don't check for disallowed ognl expressions if getting from expression cache
  • [WW-4192] - ParametersInterceptor: Message for missing Parameters is too verbose
  • [WW-4195] - Provide english texts in 2 files
  • [WW-4197] - Update Archetypes READMEs
  • [WW-4213] - Sanitise input params in Config Browser
  • [WW-4222] - Cleanup struts-default.xml
  • [WW-4225] - Duplicated code to extract URI
  • [WW-4226] - Merge security update from 2.3.15.3
  • [WW-4232] - Introduce new DeprecationInterceptor developed during Strutsathon
  • [WW-4233] - Add UTF-8 property to all poms
  • New Feature:
  • [WW-1328] - Implement theme inheritance
  • [WW-4078] - Wrong wellcome file (action) in wildcard example
  • [WW-4158] - Define factories for all types supported by ObjectFactory
  • [WW-4196] - Add a new Struts2 Archetype for HTML5 web applications with AngularJS
  • [WW-4229] - PostbackResult
  • Task:
  • [WW-4080] - Annotations example fails
  • [WW-4133] - Update Struts 2 Example Applications To Use Latest Version of Struts 2 and Move Source Code to Apache Repository

New in Apache Struts 2.3.15.3 (Oct 18, 2013)

  • Internal Changes:
  • Broken Access Control Issue fixed - thus supposed to be solved with version 2.3.15.1 but that version contains a bug which breaks support for "action:" prefix.
  • Bug Fixes:
  • [WW-4204] - 404 error occurs on submitting (after applying 2.3.15.2)
  • [WW-4211] - Form enctype="multipart/form-data" no attributes
  • [WW-4212] - Struts DMI no longer works

New in Apache Struts 2.3.15.2 (Sep 23, 2013)

  • Internal Changes:
  • Broken Access Control Issue fixed
  • Dynamic Method Invocation set to false by default
  • Bug fixes:
  • [WW-4200] - Broken Access Control Vulnerability
  • [WW-4201] - Dynamic Method Invocation disabled by default

New in Apache Struts 2.3.15.1 (Sep 19, 2013)

  • Remote code execution and open redirect vulnerabilities fixed
  • Server side file path leakage fixed
  • Improved input sanitizing for file upload example

New in Apache Struts 2.3.15 (Jul 10, 2013)

  • Internal Changes:
  • Merged security fix from version 2.3.14.1, 2.3.14.2 and 2.3.14.3
  • Resolved problem with memory leak in ContainerHolder
  • Resolved bug related to struts.convention.action.includeJars, see WW-4038
  • Improved OSGi support to allow work in Glassfish 3, see WW-3958
  • Added support to create cookies from whitin an action WW-4037
  • New interface - ValidationAware - was added to allow notify actions when there are action/field errors WW-4071
  • Sub-task:
  • [WW-3623]: ui tags will have improperly generated id attributes when the tag does not have a name specified and is inside a form
  • Bug:
  • [WW-3277]: text tag does not work properly inside a tag
  • [WW-3569]: s:radio does not select the right option on reading the value
  • [WW-3676]: javatemplates: no radiobutton is selected if property 'name' is not of type integer or string (e.g. short)
  • [WW-3689]: NullPointerException coming from Settings / LegacyPropertiesConfigurationProvider (thread-safety issue?)
  • [WW-3752]: Charset encoding incorrect when using parameters in ServletRedirectResult
  • [WW-4028]: TokenSessionInterceptor can put non-serializable object into Session
  • [WW-4036]: With javatemplate, dynamic attribute value evaluates to expression text if null
  • [WW-4038]: struts.convention.action.includeJars didn't work
  • [WW-4039]: Support for user defined logging factory is broken
  • [WW-4046]: Failing test when building xwork-core
  • [WW-4048]: WW-3994 breaks instantiation of CompositeActionMapper
  • [WW-4052]: "params" attribute in ExceptionMapping not propagated during exception handling
  • [WW-4054]: API docs are missing from the project homepage
  • [WW-4056]: requiredPosition can't work! show HTTP Status 500
  • [WW-4057]: Client Validation——XWork-core Validators Change,BUT Struts2-core /template/xhtml NOT!!!
  • [WW-4058]: ContainerHolder causes ThreadLocal memory leak
  • [WW-4067]: Interceptor init() method called twice during initialization
  • [WW-4083]: ParametersInterceptor acceptParamNames and ParameterNameAware's acceptableParameterName conflicts
  • [WW-4084]: Query Parameters Not Included
  • [WW-4089]: struts2-archetype-starter Outdated
  • [WW-4093]: Javadoc of RegexFieldValidator-annotation out-dated
  • [WW-4094]: struts.allowed.action.names inconsistency
  • [WW-4096]: Merge changes from 2.3.14.3 version into trunk
  • [WW-4097]: JavaDocs of all annotations related to validators are outdated
  • [WW-4098]: DefaultActionMapper is cleaning up correct action names
  • [WW-4104]: Action in jar is not be scanned
  • Improvement:
  • [WW-3593]: Missing html files for sub-projects
  • [WW-3958]: Struts2 OSGi plugin does not work with GlassFish
  • [WW-3999]: Allow XSLT result types to set response code
  • [WW-4020]: Upgrade to commons-logging 1.1.2
  • [WW-4021]: CleanUp poms
  • [WW-4032]: Upgrade to commons-fileupload 1.3
  • [WW-4061]: Wrong url : Apache Struts 2 Documentation > Home > FAQs > How do we get invalidate the session
  • [WW-4068]: Refactor ParametersInterceptor so it's easier to extend
  • [WW-4070]: Remove JDK4 support
  • [WW-4072]: Upgrade to commons-logging 1.1.3
  • [WW-4081]: Merge security fix from 2.3.14.1 branch into trunk
  • [WW-4085]: Add default-action-ref to configuration of example apps
  • [WW-4086]: Add default-action-ref to Config Browser configuration
  • [WW-4087]: Add log4j dependency to example apps
  • [WW-4095]: cleanupActionName should not compile regex every request
  • [WW-4107]: Omnibus ticket
  • New Feature:
  • [WW-600]: Enable Client-side validation for visitor validations
  • [WW-4037]: Provide functionality to create cookies from an Action
  • [WW-4071]: ValidationAware add callable method, called from DefaultWorkflowInterceptor
  • [WW-4073]: Disable eval expressions and simple JSTL accessibility

New in Apache Struts 2.3.12 (Mar 21, 2013)

  • All validators were refactored and right now parameters can be set via OGNL also parameter parse was removed - WW-2923 - please be aware that param names changed a bit, review documentation Validation
  • tag's required attribute was renamed to requiredLabel to allow support of Html5 required attribute in the tags - WW-3908
  • new Tiles 3 plugin added to support Tiles 3 result type - WW-3931
  • as mentioned in WW-3973 with previous release behaviour of Parameters Interceptor changed a bit - please read careful over the linked page
  • migrated site to the Apache CMS and SvnPubSub
  • support for JBoss 5 to work with the Convention Plugin was improved, check WW-3984 for more details

New in Apache Struts 2.2.1.1 (Apr 15, 2011)

  • Dynamic Method Invocation flag was added to REST Plugin, so you can disable that functionality and prevent some security flaw - please be aware that the DMI will be removed in the next major release!

New in Apache Struts 2.1.8.1 (May 11, 2010)

  • Updated assembly building process to create windows-friendly filenames and to retrieve all documentation