से काम नहीं कर रहा मैं एक SelectOneMenu घटक में एक देश का चयन करने के लिए एक कस्टम कनवर्टर है:JSF 2.0 कनवर्टर अलग जार फ़ाइल
फ़ाइल: 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;
}
और यह एक्सएचटीएमएल है पाठ:
फ़ाइल: परियोजना जड़
<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>
मेरे पास एक फ़ाइल में कनवर्टर है "address.jar" और जब मैं पता लिखने के लिए पेज खोलने का प्रयास करता हूं, तो यह कहता है "अभिव्यक्ति त्रुटि: नाम MyCustomCoverter नाम से ऑब्जेक्ट नहीं मिला।"। यहां तक कि सोचा कि जब मैं कनवर्टर को उस परियोजना में कॉपी करता हूं जहां xhtml फ़ाइलें हैं, तो यह ठीक काम करता है। इसे हल करने के लिए मैं क्या कर सकता हूं?
यह अलग जार फ़ाइल से क्यों काम नहीं करता है?
धन्यवाद।
बिल्कुल सही, यह बहुत अच्छी तरह से काम करता है। धन्यवाद!। –
आपका स्वागत है। – BalusC
एक अतिरिक्त लेकिन महत्वपूर्ण जानकारी यह है कि JAR WAR (वेब-एप्लिकेशन) की ** lib-directory ** में होना चाहिए। यदि आपके पास एक युद्ध के साथ एक ईएआर है और कनवर्टर के साथ जेएआर केवल ईएआर में है लेकिन WAR के lib में नहीं है, तो जेएसएफ कनवर्टर नहीं मिलेगा। समस्या के एक और विस्तृत विवरण के लिए यह भी देखें [यह उत्तर] (http://stackoverflow.com/questions/2987266/why-doesnt-jsf-2-0-ri-mojarra-scan-my-class-annotations)। –