java - method - El convertidor JSF 2.0 no funciona desde archivo jar separado
jsf converter selectonemenu (1)
Tengo un convertidor personalizado para seleccionar un país en un componente SelectOneMenu:
Archivo: address.jar
@FacesConverter(value="CountryConverter", forClass=Country.class)
public class CountryConverter implements Converter {
private CountryBean countryBean = CountryBean.getCountryService();
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
return countryBean.find(value);
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (value != null)
return ((Country)value).getcc_fips();
else
return null;
}
Y este es el texto xhtml:
Archivo: raíz del proyecto
<h:selectOneMenu id="country" value="#{cc.attrs.addrEntity.country}">
<f:selectItem itemLabel="Please select one..."
noSelectionOption="true" />
<f:selectItems value="#{cc.attrs.addrBean.countries}"
var="model"
itemLabel="#{model.name}"
itemValue="#{model}"
noSelectionValue="“no selection”"/>
<f:converter ConverterId="CountryConverter"/>
</h:selectOneMenu>
Tengo el convertidor en un archivo " address.jar " y cuando trato de abrir la página para escribir la dirección, responde diciendo "Expression Error: Objeto con el nombre MyCustomCoverter no encontrado". . Incluso cuando copie el convertidor al proyecto donde están los archivos xhtml, entonces funciona bien. ¿Qué puedo hacer para resolver esto?
¿Por qué no funciona desde un archivo jar separado?
Gracias.
/META-INF/faces-config.xml
proporcionar un archivo /META-INF/faces-config.xml
compatible con JSF 2.0 en el archivo JAR para que JSF escanee automáticamente el archivo JAR para las clases con anotaciones JSF.
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
</faces-config>
Sin ese archivo, JSF no escaneará automáticamente el archivo JAR para ahorrar rendimiento y, por lo tanto, su @FacesConverter
no se encontrará ni se registrará.