我正在尝试转换inputText
to java.net.URL
在 JSF 页面中:
...
<h:form>
<h:inputText value="${myBean.url}" />
<h:commandButton type="submit" value="go" />
</h:form>
...
我的支持豆是:
import java.net.URL;
@ManagedBean public class MyBean {
public URL url;
}
我应该从头开始实现转换器还是有其他方法?
是的,您需要实施Converter http://docs.oracle.com/javaee/6/api/javax/faces/convert/Converter.html。对于这个特殊情况来说,这并不难:
@FacesConverter(forClass=URL.class)
public class URLConverter implements Converter {
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (value == null) {
return null;
}
try {
return new URL(value);
}
catch (MalformedURLException e) {
throw new ConverterException(new FacesMessage(String.format("Cannot convert %s to URL", value)), e);
}
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value == null) {
return "";
}
return value.toString();
}
}
将其放在项目中的某个位置。感谢@FacesConverter http://docs.oracle.com/javaee/6/api/javax/faces/convert/FacesConverter.html它会自动注册。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)