Change log
- finally a beta release, which means that since now API will not change anymore, it will be updated/extended but currently available methods/signatures will not be changed/removed anymore.
- Localization system has been deeply changed, Action related properties (Action bundle) can now be specified in a specific Properties file, deployed in the Action package, leaving the application level properties in the default Properties file (System bundle). Also, in LabelTag you can now specify "bundle", which is the bundle path/name to be used to search for the label value.
Localizer.getString(Locale, key, Object params...)
has been removed and methodsLocalizer.getLabel(Locale, key)
andLocalizer.getLocalizedMessage(RequestContext context, String fieldName, String baseKey, Object... parameters)
have been added.- Spring injection framework can now be configured to work with your Action, populating attributes having a
SpringBean
annotation. Spring context can be configured by the "springinjector.config.file" init parameter on the JavajaxFilter. - Request parameters/method parameters mapping can now be specified also at method level through the annotation
ParameterMapping
, this should help to have more readable methods. - A Bean pre-population strategy has been added, in
Populate
annotation you can now specify aFactory
method that will return a pre-configured Bean, ready to be populated by the framework with request parameters. - Code Highlighting and Form Population are now managed by two different tags,
HighlighterTag
andPopulatorTag
. HighlighterTag
andPopulatorTag
now acceptcontainer
property instead ofform
, since they work with any DOM container objects, not only forms.- Messaging system has been extended, you can now generate also
Message
objects which will be displayed by theMessageTag
.ValidationMessage
andSystemMessage
objects will continue to be managed by theErrorTag
. - Parameter
displayName
has been removed from theParam
annotation and fromValidationMessage
constructors since it isn't used anymore. - Javascript API is now available for use with jquery framework as well as prototype js framework.
- Javascript API for prototype has changed, "javajax:VALIDATION_ERROR" message is now fired on the checked element and not on the fields container.
- An Action Javascript Interface can now be requested by the url {ACTION_BINDING}.{JS_EXTENSION}, where js.extension is a parameter configured in web.xml (defaults to "ajs").
This interface exposes all the callable methods of the action, with the format {ActionBinding}.{methodName}.{page|ajax}, extension defines the type of call.
Input parameter is an Hash that follows prototypes.js format.
This means that direct calls to Javajax JS API (AjaxCaller, PageCaller) are not needed anymore, and more important, URLs to call a method are built dynamically, you don't need to write it in your code. i.e. to call the method save on action Manager, import a js by the url<script src="Manager.ajs"></script>
and call the methodManager.save.page({})
orManager.save.ajax({})
. - A new attribute,
wordwrapJSCode
, can be specified in the filter configuration in web.xml to specify whether the Action js interface code should be generated with indentation and formatting or on a single row. - License is changed, this software is now Open source, modifications are allowed as long as you share your modifications to be included in the Original Version.
Param
annotation can now be configured with aorg.thinkjava.javajax.conversion.Converter
class, which will be responsible for data conversion to the expected type. This way you can convert input values to your own custom types.- a new tag
ValueTag
has been added, useful to format values (especially Date and Number). Optionally you can specify aFormatter
class, which will be used to obtain the formatted string representing the value. - Some minor changes and optimizations.
- Javascript AjaxCaller object has been modified, now accepts not only onSuccess, onFailure and onComplete handlers, you can specify any handler as described on http://www.prototypejs.org.
- Solved a bug with ActionResponse, it wasn't working properly in some situation
- Solved a bug in JSONConverter, it wasn't handling correctly hexadecimal values in the format \uxxxx
- Some minor modifications.
- getResponse() method in RequestContext has been set to public visibility
- Added Localizer object, useful to get a localized text through method getString(Locale, key, Object params...)
- Security verification process has been optimized
- Some minor modifications.
- Added maxFileSize, accepts and deny attributes to @Param annotation, used to validate UploadFile parameters
- Some minor modifications.
- Major refactoring, now only the Filter needs to be configured in web.xml, greatly semplifying configuration. Most of the filter parameters are optional, just use what you need. Please refer to the README for a quick configuration reference.
- Added an internationalization demo in Demo application.
- Encoding can now be specified on JSONResponse, default is ISO-8859-1
- Some minor modifications.
- Added 2 new Jsp tags, context and action, to have a faster reference to the RequestContext and the specified action respectively.
- Added support for action/method call chaining, with a new Response object ActionResponse
- Some minor modifications.
- Added localized number/date conversion, now it accepts numbers with integer/decimal separators, (separators depending on user locale or application locale)
- Optimized bean population process, now a BeanPopulator class is available for direct use
- Added a Security Tag to control interfaces parts with the same security required for the specified method.