2012-09-19 18 views
6

मैं जेएसएफ hLselectOneMenu में स्ट्रिंग इन इंटीजर को कन्वर्ट करना चाहता हूं।स्ट्रिंग में इंटीजर को एच में कैसे परिवर्तित करें: selectOneMenu

<h:selectOneMenu id="rowsPerPage" value="#{AccountsController.rowsPerPage}" converter="javax.faces.Integer" maxlength="3">          
    <f:selectItem itemValue="10" itemLabel="10" /> 
    <f:selectItem itemValue="50" itemLabel="50" /> 
    <f:selectItem itemValue="100" itemLabel="100" /> 
    <f:selectItem itemValue="500" itemLabel="500" />          
    <f:selectItem itemValue="094332" itemLabel="Custom" /> 
    <f:ajax render="customrowperpage" /> 
</h:selectOneMenu>&nbsp; 
    <h:inputText id="customrowperpage" value="#{AccountsController.rowsPerPage}" rendered="#{AccountsController.rowsPerPage == '094332'}" required="true" /> 

मैं जेएसएफ पेज में यह कैसे कर सकता हूं?

पीएस मैंने कोड अपडेट किया लेकिन यह AJAX कोड काम नहीं कर रहा है। जब मैं "कस्टम" चुनता हूं तो इनपुट फ़ील्ड प्रदान नहीं किया जाता है।

उत्तर

5

यहां कुछ समस्याएं हैं।

  • कोई विशेषता घटक h:selectOneMenu की size नामित नहीं है। हटाए इसे।

  • चयनित आइटम custom एक पूर्णांक के लिए हल नहीं किया जा सकता है, इसलिए जब तक यह चयन आइटम मौजूद है, आपको त्रुटियां मिलेंगी।

  • आपको अपने h:selectOneMenu घटक में एक संख्या कनवर्टर जोड़ने की आवश्यकता है। <f:convertNumber integerOnly="true" />

बार जब आप इन हल फिर वहाँ एक कामयाब संपत्ति है कि एक पूर्णांक प्रकार है करने के लिए घटक के मूल्य बाध्यकारी कोई समस्या नहीं होगी।

+0

+1 यह सुझाव देने के लिए कि एच: selectOneMenu पर कोई आकार विशेषता नहीं है। मैं एक ही समस्या में भाग गया जो एच को परिवर्तित कर रहा है: inputText को h: selectOneMenu। – Catfish

14

कनवर्टर विशेषता के माध्यम से इंटीजर कनवर्टर जोड़ें।

<h:selectOneMenu converter="javax.faces.Integer"/> 
+1

नोट, कि यह प्राइमफ़ेस '' के साथ काम नहीं करता है। इसके अलावा, घटक को इसकी आवश्यकता नहीं होती है। (केवल उन लोगों के लिए जो इसे Google करते हैं) – Kawu

+0

@ क्वू अधिकांश समय घटक बिना किसी समस्या के बाध्य _value_ के प्रकार का पता लगा सकता है। ऐसे मामले हैं जहां यह काम नहीं करेगा - उदाहरण के लिए जेनेरिक का उपयोग: संकलन समय पर यह ज्ञात है कि _Integer_ है लेकिन बाइटकोड में यह _Object_ है। यहां यह समाधान मदद करता है! – DaniEll

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