2011-05-26 20 views
9

में इंजेक्शन नहीं। इसे स्वचालित रूप से स्वचालित नहीं किया जाना चाहिए क्योंकि यह एक प्रबंधित बीन भी है? यह सब काम करता है जब मैं "getAsObject" को "नया समूह() लौटाता हूं" जाहिर है।ManagedProperty मैं निम्नलिखित तरीके से मेरी FacesConverted में एक ManagedBean इंजेक्षन कोशिश कर रहा हूँ @FacesConverter

कोई विचार?

उत्तर

24

यह संभावना है कि आप managed bean name को हल नहीं कर रहे हैं।

@ManagedBean(name = "myConverter") 
@RequestScoped 
@FacesConverter(value = "myConverter") 
public class MyConverter implements Converter { 

उदाहरण के लिए, इन दो घटकों पर विचार करें:

 <h:inputText converter="myConverter" value="#{foo.prop}" /> 
     <h:inputText converter="#{myConverter}" value="#{bar.prop}" /> 

कनवर्टर पहले घटक पर सेट कर दिया जाता है, यह Application.createConverter द्वारा बनाया जाएगा। एक कनवर्टर एक प्रबंधित बीन नहीं है। यदि आप match a converter by type पर लागू होते हैं तो वही नियम लागू होते हैं।

दूसरे घटक में, एक मान अभिव्यक्ति का उपयोग उस वर्ग को वापस करने के लिए किया जाता है जो Converter लागू करता है। यह सामान्य प्रबंधित बीन तंत्र का उपयोग करता है। इस मामले में, @FacesConverter एनोटेशन अप्रासंगिक है।

+0

धन्यवाद, यह नहीं पता था कि कनवर्टर एक बीन नहीं है, भले ही मैं इसे एक के रूप में एनोटेट करता हूं। –

+0

धन्यवाद, जिसने मेरा दिन बनाया। – flash

+0

बहुत बहुत धन्यवाद, '# {myConverter} 'ने मुझे बहुत समय बचाया! – axelarge