public class URIEditor extends PropertyEditorSupport
java.net.URI, to directly populate a URI property
instead of using a String property as bridge.
Supports Spring-style URI notation: any fully qualified standard URI ("file:", "http:", etc) and Spring's special "classpath:" pseudo-URL, which will be resolved to a corresponding URI.
By default, this editor will encode Strings into URIs. For instance,
a space will be encoded into %20. This behavior can be changed
by calling the URIEditor(boolean) constructor.
Note: A URI is more relaxed than a URL in that it does not require a valid protocol to be specified. Any scheme within a valid URI syntax is allowed, even without a matching protocol handler being registered.
| Constructor and Description |
|---|
URIEditor()
Create a new, encoding URIEditor, converting "classpath:" locations into
standard URIs (not trying to resolve them into physical resources).
|
URIEditor(boolean encode)
Create a new URIEditor, converting "classpath:" locations into
standard URIs (not trying to resolve them into physical resources).
|
URIEditor(ClassLoader classLoader)
Create a new URIEditor, using the given ClassLoader to resolve
"classpath:" locations into physical resource URLs.
|
URIEditor(ClassLoader classLoader,
boolean encode)
Create a new URIEditor, using the given ClassLoader to resolve
"classpath:" locations into physical resource URLs.
|
| Modifier and Type | Method and Description |
|---|---|
protected URI |
createURI(String value)
Create a URI instance for the given user-specified String value.
|
String |
getAsText() |
void |
setAsText(String text) |
addPropertyChangeListener, firePropertyChange, getCustomEditor, getJavaInitializationString, getSource, getTags, getValue, isPaintable, paintValue, removePropertyChangeListener, setSource, setValue, supportsCustomEditorpublic URIEditor()
public URIEditor(boolean encode)
encode - indicates whether Strings will be encoded or notpublic URIEditor(@Nullable ClassLoader classLoader)
classLoader - the ClassLoader to use for resolving "classpath:" locations
(may be null to indicate the default ClassLoader)public URIEditor(@Nullable ClassLoader classLoader, boolean encode)
classLoader - the ClassLoader to use for resolving "classpath:" locations
(may be null to indicate the default ClassLoader)encode - indicates whether Strings will be encoded or notpublic void setAsText(String text) throws IllegalArgumentException
setAsText in interface PropertyEditorsetAsText in class PropertyEditorSupportIllegalArgumentExceptionprotected URI createURI(String value) throws URISyntaxException
The default implementation encodes the value into a RFC-2396 compliant URI.
value - the value to convert into a URI instanceURISyntaxException - if URI conversion failedpublic String getAsText()
getAsText in interface PropertyEditorgetAsText in class PropertyEditorSupport