कुछ ही खोजों से, यह एक समस्या की तरह लगता है जो थोड़ी देर के आसपास रहा है। मैंने एक FacesConverter लिखा है जो निम्न जैसा दिखता है। ऑब्जेक्ट श्रेणी एक जेपीए इकाई है और श्रेणी नियंत्रण वह डीएओ है जो इसे प्राप्त करता है।एक FacesConverter में सीडीआई इंजेक्शन
@FacesConverter(value = "categoryConverter")
public class CategoryConverter implements Converter {
@Inject private CategoryControl cc;
public CategoryConverter() { }
@Override
public Object getAsObject(FacesContext context, UIComponent component, String value) {
if (cc != null) return cc.getByName(value);
System.out.println("CategoryConverter().getAsObject(): no injection!");
return null;
}
@Override
public String getAsString(FacesContext context, UIComponent component, Object value) {
if (!(value instanceof Category)) return null;
return ((Category) value).getName();
}
}
जैसा कि आपने शायद अब अनुमान लगाया है, मुझे इंजेक्शन कभी नहीं मिलता है। मैं this page से इस समाधान मिल गया है, जो लगता है कि इस तरह .:
Workaround for this problem: create this method in your localeController:
public Converter getConverter()
{
return FacesContext.getCurrentInstance().getApplication().createConverter("localeConverter");
}
and use converter="#{localeController.converter}" in your h:selectOneMenu.
हालांकि मैं यह काम या तो नहीं कर सकता। मेरी बैकिंग बीन एक कन्वर्टर को सही बनाता है और लौटाता है, लेकिन इसमें ऑब्जेक्ट इंजेक्शन नहीं मिलता है।
मैं MyFaces CODI 1.0.1 का उपयोग कर रहा हूं। वर्तमान ग्लासफ़िश/वेल्ड कंटेनर के साथ। क्या कोई कनवर्टर का उपयोग न करने के लिए पुनः कोड करने से पहले कोई समाधान सुझा सकता है?
खैर मैं क्षतिग्रस्त हो जाऊंगा। मैंने एक वर्कअराउंड लागू किया जो मूल रूप से कनवर्टर के अंदर से अभिव्यक्ति का मूल्यांकन करने के लिए एप्लिकेशन को कॉल करता है, लेकिन मुझे लगता है कि यह अधिक सुरुचिपूर्ण है। तो मेरे पास एक और सवाल है @ बाल्लूसी - क्या आपने जेएसएफ पर एक पुस्तक लिखी है? – AlanObject
आपका स्वागत है। पुस्तक के रूप में, आप पहले से ही पहले नहीं हैं जिन्होंने यह पूछा ... – BalusC
ठीक है ऐसा नहीं है कि आपको बहुत कुछ लिखना पड़ेगा - बस जो कुछ भी आपने पहले लिखा है उसे संपादित करें। गंभीरता से मैंने एक पुस्तक के लिए रूपरेखा के बारे में सोचा है यदि आप सहयोग में रूचि रखते हैं तो मुझे बताएं। – AlanObject