Using a PropertyEditor for Conversion
If the standard conversion rules are not enough for your needs, you
can use a bean PropertyEditor to convert a literal
string value to any Java data type you like. If an action attribute
value is specified as a literal string for an attribute of a type
other than String, the container looks for a
property editor that can convert the string to the
attribute’s data type. The property editor is also
used for EL expressions that evaluate to a String,
and for <jsp:attribute> element values.
Say you have an attribute of type java.util.Date.
To let the page author specify it as a text value, you need a
PropertyEditor that converts a
String to a Date.
Here’s how it’s done.
First you implement the PropertyEditor:
package com.foo;
import java.beans.*;
import java.text.*;
import java.util.*;
public class MyDatePE extends PropertyEditorSupport
implements PropertyEditor {
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
private Date value;
public Object getValue( ) {
return value;
}
public void setAsText(String text)
throws IllegalArgumentException {
try {
value = sdf.parse(text);
}
catch (ParseException e) {
throw new IllegalArgumentException(e.getMessage( ));
}
}
}The container calls the setAsText( ) method with
the attribute’s String value.
This method creates a Date object from the string
and saves it in the instance variable named value.
The container then calls the getValue( )
method—which returns the new Date object—and uses the value ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access