2009-02-11 4 views
7

मैं एक फेसलेट/जेएसएफ पर्यावरण में एक छोटा सा ट्विक करने की कोशिश कर रहा हूं। मैं कुछ भी नहीं जानता कि यह सब कैसे एक साथ फिट बैठता है।फेसलेट्स: ui कैसे पास करें: HTML विशेषता के रूप में मूल्य डालें?

मैं "शीर्षक"

<ui:define name="title">PageUID_123</ui:define> 

एक और पृष्ठ पर मैं के साथ इस संदर्भित कर रहा हूँ के रूप में विभिन्न पृष्ठों पर परिभाषित एक मूल्य है:

<ui:insert name="title"/> 

मैं डालने ठीक चारों ओर html टैग लपेट कर सकते हैं, लेकिन मुझे किसी अन्य तत्व की विशेषता के रूप में "शीर्षक" के मान को आउटपुट करने में सक्षम होना चाहिए।

<meta name="pageid" content="PageUID_123"/> 

मैं सामग्री में डालने टैग लगाने की कोशिश करते हैं = "" बिट, यह एक पार्सिंग त्रुटि फेंकता है: मेरा अंतिम लक्ष्य इसे इस तरह html में प्रस्तुत करने के लिए के लिए है। क्या इसे करने का कोई तरीका है?

उत्तर

6

मैं मेरे सामने एक काम पर्यावरण नहीं है, लेकिन मेरा मानना ​​है कि आप करने के लिए आप <ui:define> का उपयोग नहीं करना चाहते हैं, लेकिन इसके बजाय आप <ui:param> उपयोग करना और फिर ${x} या #{x} का उपयोग (या भूलना चाहते जो या अगर यह मामलों) उन्हें बाहर खींचने के लिए।

तो, आप उदाहरण के लिए आप होगा:

<ui:param name="title" value="PageUID_123" /> 

और फिर:

<meta name="pageid" content="${title}"/> 

उस के साथ मेरी केवल चिंता यह है कि आप उपयोग कर रहे अच्छा टेम्पलेट्स के लिए शामिल हैं, यानी

है

टेम्पलेट:

<html> 
    <head> 
     <meta name="pageid" content="${title}"/> 
    </head> 
    <body> 
     <ui:insert name="content" /> 
    </body> 
</html> 

इनर पेज:

<html xmlns="...so many"> 
    <ui:param name="title" value="PageUID_123" /> 
    <ui:define name="content"> 
     <!-- content goes here --> 
    </ui:define> 
</html> 

और मैं वास्तव में यह है कि अगर उड़ा ले जाएगा पता नहीं है ...

संपादित करें: आप ${title} या #{title} बस के लिए kicks जिस तरह से आप कर रहे हैं का उपयोग करना चाहेंगे अब, यह सिर्फ काम कर सकता है।

+1

फेसलेट में इससे कोई फर्क नहीं पड़ता कि आप $ {x} या # {x} का उपयोग करते हैं। उनका मतलब वही है: https://facelets.dev.java.net/nonav/docs/dev/docbook.html#el –

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