2013-05-21 3 views
24

द्वारा प्रस्तुत नहीं की जाती हैं, मैं अपने लॉगिन-फॉर्म में कुछ आईओएस विशिष्ट टैग विशेषताओं को जोड़ना चाहता हूं। यदि मेरे पास मेरे वेब पेज स्रोत पर एक नज़र है, तो विशेषताएं स्वतः-सही, ऑटोकापिटाइज और स्पेल चेक नहीं हैं। इसका कारण क्या है? मैं जेएसएफ 2.x का उपयोग कर रहा हूँ।कस्टम HTML टैग विशेषताएँ जेएसएफ

<h:inputText id="user-name" forceId="true" value="#{login.username}" style="width:120px;" 
    autocorrect="off" autocapitalize="off" spellcheck="false" /> 

उत्तर

51

यह डिज़ाइन द्वारा है। आप केवल जेएसएफ घटक द्वारा supported गुणों को निर्दिष्ट कर सकते हैं (यानी यह tag documentation में विशेषता सूची में सूचीबद्ध है)। आप मनमाने ढंग से अतिरिक्त विशेषताओं को निर्दिष्ट नहीं कर सकते हैं, वे सभी को अनदेखा कर दिया जाएगा।

  1. आप पहले से ही JSF 2.2+ पर हैं, तो बस यह passthrough attribute के रूप में निर्दिष्ट करें::

    <html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough"> 
    ... 
    <h:inputText ... a:autocorrect="off" /> 
    

    (ध्यान दें कि मैं उपयोग कर रहा हूँ

    इस को हल करने के कई तरीके हैं xmlns:axmlns:p के बजाय प्राइमफ़ेस डिफ़ॉल्ट नामस्थान के साथ संघर्ष से बचने के लिए)

    या:

    <html ... xmlns:f="http://xmlns.jcp.org/jsf/core"> 
    ... 
    <h:inputText ...> 
        <f:passThroughAttribute name="autocorrect" value="off" /> 
    </h:inputText> 
    

  2. उपयोग OmniFacesHtml5RenderKit। 1.5 रिलीज के बाद से, यह <context-param> द्वारा कस्टम विशेषताओं को निर्दिष्ट करने का समर्थन करता है। showcase example या Javadoc भी देखें।


  3. कस्टम प्रस्तुतकर्ता बनाएं। आप नीचे दिए गए जवाब में कई ठोस उदाहरण मिल सकते हैं:

+0

धन्यवाद BalusC - तुम महान हो! – Jochen

+1

बहुत बहुत धन्यवाद बलससी, आप जेएसएफ के मालिक हैं :) लगभग सभी को आपकी आवश्यकता है .. – Simego

+0

यह मेरे लिए काम करता है, जब तक मैं 'http://xmlns.jcp.org/jsf/passthrough का उपयोग करता हूं पुराने java.sun.com नामस्थान की बजाय। – Joost

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