2010-02-25 9 views
29

फेसलेट्स जेएसएफसी एचटीएमएल तत्वों को उनके संबंधित जेएसएफ घटकों में परिवर्तित करने के लिए विशेषता का उपयोग करता है। यह तेजी से प्रोटोटाइप के लिए उपयोगी है क्योंकि यह आपको विजुअल डिज़ाइन टूल का उपयोग करके अपने विचार बनाने की अनुमति देता है। DataTable: हालांकि मैं हाल ही में रेती Horstmann जहां वह एक साथ JSFC का उपयोग करने के अपशिष्ट देता है इस तरह के एच के रूप में जटिल घटकों के साथ द्वारा this ब्लॉग पोस्ट की खोज की।क्या मुझे फेसलेट्स "जेएसएफसी" विशेषता का उपयोग करना चाहिए?

यह मुझे के रूप में खतरे में डाल दिया गया है Cay Horstmann मेरी पसंदीदा जावा पुस्तकों में से कई का लेखक है। हालांकि Ed Burns द्वारा हालिया पोस्ट के अलावा, जेएसएफसी (और वह के लिए सभी सह-स्पीक लीड के बाद है) की समस्या के दायरे/प्रकृति को निर्धारित करने की कोशिश करते समय मेरे Google-fu कौशल ने शून्य परिणाम प्राप्त किए हैं। जेएसएफ)। तो मेरा सवाल बस है, क्या इसे जेएसएफसी फेसलेट्स के साथ उपयोग करने की अनुशंसा की जाती है? और यदि नहीं, तो यह समस्या क्या है।

उत्तर

32

जैसा कि आपने कहा था, jsfc विशेषता अनिवार्य रूप से उपयोगी होती है जब आपको एक HTML प्रोटोटाइप को जेएसएफ पृष्ठ पर "रूपांतरित" करना होता है। उदाहरण के लिए, जब आप एक HTML इनपुट पाठ है:

<input type="text" jsfc="h:inputText" .../> 

इस लेखन के बराबर है निम्नलिखित:

<input type="text" .../> 

आप jsfc विशेषता के लिए एक JSF घटक में यह HTML घटक कन्वर्ट करने के लिए में जोड़ सकते हैं JSF कोड:

<h:inputText .../> 

Facelets प्रलेखन here या here में कहा गया है, विशेषताके रूप मेंका उपयोग फेसलेट घटकों को "मानचित्र" करने के लिए भी किया जा सकता है।

<span jsfc="ui:remove"> 
This won't be compiled either <h:outputText value="#{foo.bar}"/> 
</span> 

इस विशेषता का उपयोग कर एक टेबल बना सकते हैं: उदाहरण के लिए, आप HTML कोड का एक हिस्सा निकाल सकते हैं

<table> 
    <tr jsfc="ui:repeat" value="#{dept.employees}" var="emp" class="#{emp.manager ? 'mngr' : 'peon'}"> 
     <td>#{emp.lastName}</td> 
     <td>#{emp.firstName}</td> 
    </tr> 
</table> 

इस उदाहरण में, हम एक h:datatable के लिए इस तालिका लिंक नहीं करते घटक, लेकिन हम पंक्तियों को फिर से चलाने के लिए JSF घटक ui:repeat का उपयोग करके HTML कोड के साथ एक तालिका बनाते हैं।

जैसा कि आप देख सकते हैं, jsfc विशेषता का उपयोग एक HTML घटक को जेएसएफ पृष्ठ में एक जेएसएफ घटक में परिवर्तित करने के लिए किया जा सकता है। तो जटिल घटकों के लिए, जैसे डाटाटेबल, आपको कुछ वर्कअराउंड्स का उपयोग करना होगा (h:datatable घटक के बजाय ui:repeat का उपयोग करना)।

एक और बिंदु यह है कि आप रिचफेस, आइसफेसेस, टॉमहॉक, और इसी तरह के प्रस्तावों जैसे तीसरे पुस्तकालयों के घटकों का उपयोग करने में सक्षम नहीं होंगे। और ये पुस्तकालय वास्तव में जेएसएफ के हितों में से एक हैं।

तो संक्षेप में: jsfc एचटीएमएल प्रोटोटाइप को जेएसएफ अनुप्रयोगों में बदलने के लिए उपयोगी हो सकता है, अनिवार्य रूप से अवधारणाओं के सबूत बनाने या सामान्य यूआई को डिजाइन करने के लिए। हालांकि, मुझे लगता है कि "असली" विकास शुरू होने के बाद इस घटक से बचना बेहतर होता है ...

+0

अच्छा ...असल में, मैंने अभी किसी तीसरे पक्ष के घटक के साथ जेएसएफसी विशेषता का परीक्षण किया है, और यह ठीक काम करता है ... –

संबंधित मुद्दे