2010-01-18 8 views
5

मैं मानक कनवर्टर कक्षा का उपयोग करके चेहरे-कॉन्फ़िगरेशन में विभिन्न कनवर्टर उदाहरण पंजीकृत करने का प्रयास कर रहा हूं, जिसमें विभिन्न पैरामीटर पारित किए जाते हैं।जेएसएफ कनवर्टर संपत्ति

नीचे दिया गया कोड दो डेटटाइम कन्वर्टर्स पंजीकृत करता है, समय के साथ पहली बार और दूसरा समय केवल समय के लिए। लेकिन पैटर्न संपत्ति कभी सेट नहीं हो जाती है। क्या यह किया जा सकता है?

<converter> 
    <converter-id>dateTimeConverter</converter-id> 
    <converter-class>javax.faces.convert.DateTimeConverter</converter-class> 
    <property> 
     <property-name>pattern</property-name> 
     <suggested-value>yyyy-MM-dd HH:mm:ss</suggested-value> 
    </property> 
</converter> 

<converter> 
    <converter-id>timeConverter</converter-id> 
    <converter-class>javax.faces.convert.DateTimeConverter</converter-class> 
    <property> 
     <property-name>pattern</property-name> 
     <suggested-value>HH:mm:ss</suggested-value> 
    </property> 
</converter> 
+1

समुदाय विकी – Bozho

+0

नहीं होना चाहिए वास्तव में नहीं। अपना प्रश्न संपादित करें, "समुदाय विकी" चेकबॉक्स को अनचेक करें और सहेजें। सामुदायिक विकी केवल व्यक्तिपरक प्रश्न/चर्चाओं के लिए उपयोग करने का इरादा रखता है। आपका प्रश्न व्यक्तिपरक से बहुत दूर है। यह सिर्फ एक तकनीकी प्रश्न/समस्या है। – BalusC

+0

सच है, यह नहीं पता था कि यह क्या था। लेकिन संपादन पृष्ठ में इसे अक्षम करने के लिए कोई चेकबॉक्स नहीं है :( –

उत्तर

6

यह दुर्भाग्य से faces-config.xml के माध्यम से संभव नहीं है। <property> घोषणा जो आप कोशिश कर रहे हैं रनटाइम के दौरान उपयोग नहीं किया जाता है।

यदि आप चाहते हैं कि पर एक पैटर्न पर पैटर्न को नियंत्रित करना है, तो कस्टम कनवर्टर बनाने के लिए आप क्या कर सकते हैं सबसे अच्छा है। इस विशेष उद्देश्य के लिए यह मुश्किल नहीं है। बस DateTimeConverter का विस्तार करें और निर्माण के दौरान पैटर्न सेट करें। यहां एक मूल उदाहरण दिया गया है:

public MyDateTimeConverter extends DateTimeConverter() { 
    public MyDateTimeConverter() { 
     setPattern("yyyy-MM-dd HH:mm:ss"); 
    } 
} 

आप निश्चित रूप से कहीं और से पैटर्न प्राप्त कर सकते हैं, उदा। क्लासपाथ में एक गुण फ़ाइल या एक्सएमएल फ़ाइल।

रजिस्टर इस कनवर्टर इस प्रकार है:

<converter> 
    <converter-for-class>java.util.Date</converter-for-class> 
    <converter-class>com.example.MyDateTimeConverter</converter-class> 
</converter> 

यह होना चाहिए कि। f:converter या UIOutput#setConverterId() के लिए कोई आवश्यकता नहीं है।

+0

आपकी व्याख्या के लिए धन्यवाद। लेकिन चेहरे-config.xml में इन गुणों का उपयोग क्या है ? (संपत्ति टैग xsd का हिस्सा है) –

+0

@JurgenHannaert, [xsd] (http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd) को देखें, यह कहता है: _ "विशेषता" और "संपत्ति" तत्वों का उद्देश्य घटक डेवलपर्स को अपने घटकों को टूल और उपयोगकर्ताओं को पूरी तरह से वर्णित करने की अनुमति देना है। इन तत्वों के पास कोई रनटाइम semantics._ –

+0

वास्तव में, उदाहरण के लिए [ctrl + space] स्वत: पूर्ण टूलटिप्स/विवरण । – BalusC