mam niestandardową konwertera, aby wybrać kraj w komponencie SelectOneMenu:JSF 2.0 Konwerter nie działa z oddzielnym słoik pliku
Plik: 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;
}
I to jest xhtml tekst:
pliku: root Projekt
<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>
Mam konwerter w pliku "address.jar" i kiedy próbuję otworzyć stronę, aby napisać adres, to odpowiada mówiąc: "Błąd wyrażenia: Obiekt o nazwie MyCustomCoverter nie znaleziony.". Nawet myśl, kiedy kopiuję konwerter do projektu, w którym znajdują się pliki xhtml, wtedy działa dobrze. Co mogę zrobić, żeby to rozwiązać?
Dlaczego to nie działa z oddzielnego pliku jar?
Dzięki.
Doskonały, działa bardzo dobrze. Dzięki!. –
Nie ma za co. – BalusC
Jednym dodatkowym, ale ważnym szczegółem jest to, że JAR musi znajdować się w katalogu ** lib WAR (aplikacja webowa). Jeśli masz EAR z WAR, a JAR z konwerterem jest tylko w EAR, ale nie w bibliotece WAR, JSF nie znajdzie konwertera. Zobacz także [tę odpowiedź] (http://stackoverflow.com/questions/2987266/why-doesnt-jsf-2-0-ri-mojarra-scan-my-class-annotations), aby uzyskać inny szczegółowy opis problemu. –