All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.opensymphony.xwork2.util.AnnotationXWorkConverter Maven / Gradle / Ivy

Go to download

XWork is an command-pattern framework that is used to power WebWork as well as other applications. XWork provides an Inversion of Control container, a powerful expression language, data type conversion, validation, and pluggable configuration.

There is a newer version: 2.1.3
Show newest version
/*
 * Copyright (c) 2002-2006 by OpenSymphony
 * All rights reserved.
 */
package com.opensymphony.xwork2.util;

/**
 * 
 * 

* Type conversion is great for situations where you need to turn a String in to a more complex object. Because the web * is type-agnostic (everything is a string in HTTP), XWork's type conversion features are very useful. For instance, * if you were prompting a user to enter in coordinates in the form of a string (such as "3, 22"), you could have * XWork do the conversion both from String to Point and from Point to String. *

*

Using this "point" example, if your action (or another compound object in which you are setting properties on) * has a corresponding ClassName-conversion.properties file, XWork will use the configured type converters for * conversion to and from strings. So turning "3, 22" in to new Point(3, 22) is done by merely adding the following * entry to ClassName-conversion.properties (Note that the PointConverter should impl the ognl.TypeConverter * interface): *

*

point = com.acme.PointConverter *

*

Your type converter should be sure to check what class type it is being requested to convert. Because it is used * for both to and from strings, you will need to split the conversion method in to two parts: one that turns Strings in * to Points, and one that turns Points in to Strings. *

*

After this is done, you can now reference your point (using <ww:property value="post"/> in JSP or ${point} * in FreeMarker) and it will be printed as "3, 22" again. As such, if you submit this back to an action, it will be * converted back to a Point once again. *

*

In some situations you may wish to apply a type converter globally. This can be done by editing the file * xwork-conversion.properties in the root of your class path (typically WEB-INF/classes) and providing a * property in the form of the class name of the object you wish to convert on the left hand side and the class name of * the type converter on the right hand side. For example, providing a type converter for all Point objects would mean * adding the following entry: *

*

com.acme.Point = com.acme.PointConverter *

* *

*

*

* *

* Type conversion should not be used as a substitute for i18n. It is not recommended to use this feature to print out * properly formatted dates. Rather, you should use the i18n features of XWork (and consult the JavaDocs for JDK's * MessageFormat object) to see how a properly formatted date should be displayed. *

* *

*

*

* *

* Any error that occurs during type conversion may or may not wish to be reported. For example, reporting that the * input "abc" could not be converted to a number might be important. On the other hand, reporting that an empty string, * "", cannot be converted to a number might not be important - especially in a web environment where it is hard to * distinguish between a user not entering a value vs. entering a blank value. *

*

By default, all conversion errors are reported using the generic i18n key xwork.default.invalid.fieldvalue, * which you can override (the default text is Invalid field value for field "xxx", where xxx is the field name) * in your global i18n resource bundle. *

*

However, sometimes you may wish to override this message on a per-field basis. You can do this by adding an i18n * key associated with just your action (Action.properties) using the pattern invalid.fieldvalue.xxx, where xxx * is the field name. *

*

It is important to know that none of these errors are actually reported directly. Rather, they are added to a map * called conversionErrors in the ActionContext. There are several ways this map can then be accessed and the * errors can be reported accordingly. *

* * * @author Pat Lightbody * @author Rainer Hermanns * @see com.opensymphony.xwork2.util.XWorkConverter * @deprecated Since XWork 2.0.4, the implementation of XWorkConverter handles the processing of annotations. */ public class AnnotationXWorkConverter extends XWorkConverter { }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy