2008-10-03 16 views
11

में दो बार स्वरूपण करना मुझे यहां मिली एक समस्या है: JSF selectItem label formattingजेएसएफ

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

मैंने उपयोग करने का प्रयास किया है लेकिन ऐसा लगता है कि इनपुट फ़ील्ड से मूल्य पर लागू किया गया है जो इनपुट क्षेत्र में प्रारंभिक मान पर नहीं है।

मेरे कोड अब तक:

<h:inputText id="december" value="#{budgetMB.december}" onchange="setDirty()" styleClass="StandardBlack"> 
    <f:convertNumber maxFractionDigits="2" groupingUsed="false" /> 
</h:inputText> 

संपादित करें: इसके बाद के संस्करण कोड वास्तव में काम करता है। मुझे जेड डेवलपर द्वारा बेवकूफ़ बना दिया गया था, जिसने जेएसपी पेज को अपडेट नहीं किया था, भले ही मैंने अपनी परियोजना का स्पष्ट पुनर्निर्माण किया और एम्बेडेड ओसी 4 जे सर्वर को पुनरारंभ किया। हालांकि, मेरे कंप्यूटर के रिबूट के बाद सबकुछ ठीक था।

+0

जेएसएफ कोड को घेरने के लिए बैकटिक्स (') का उपयोग करने का प्रयास करें जिसमें < and > वर्ण हैं - मुझे लगता है कि यह आपकी कुछ पोस्ट खा चुका है! –

उत्तर

14

मैं आपकी आवश्यकता गलतफहमी नहीं कर रहा हूँ, मैं के साथ देखने का प्रतिपादन के दौरान इनपुट बॉक्स में मूल्य के स्वरूपण को प्राप्त करने में सक्षम था:

<h:inputText id="text1" value="#{...}"> 
    <f:convertNumber pattern="#,###,##0.00"/> 
</h:inputText> 

मैं स्टैंडर्ड उपयोग कर रहा था में अवयव चेहरे मेरी विक्रेता-ब्रांडेड ग्रहण इसलिए मुझे लगता है कि pattern विशेषता मानक जेएसएफ का हिस्सा है।

+0

आपका कोड पैटर्न में कुछ बदलावों के साथ काम करता है। हालांकि, मुझे अब भी अपना कोड मिला है। JDeveloper ने एम्बेडेड ओसी 4 जे सर्वर को पुन: संकलित और पुनरारंभ करते समय भी किए गए परिवर्तन नहीं किए। मेरे कंप्यूटर के रिबूट के बाद सब ठीक काम किया, हालांकि। – Stian

1

यदि आप जो करने की कोशिश कर रहे हैं, वह स्क्रीन पर इनपुट टेक्स्ट फ़ील्ड चेंज (उपयोगकर्ता इनपुट को सही करने के लिए) का मूल्य बनाता है, तो आपको शायद Rich Faces जैसे जेएसएफ AJAX फ्रेमवर्क का उपयोग करना चाहिए।

एक संभावित उदाहरण इस प्रकार दिखाई देगा:

<h:inputText id="december" value="#{budgetMB.december}" styleClass="StandardBlack"> 
    <f:convertNumber maxFractionDigits="2" groupingUsed="false" /> 
    <a4j:support event="onblur" reRender="december" /> 
</h:inputText> 

मैं इस परीक्षण नहीं किया है, लेकिन मैं यह काम कर सकते हैं लगता है।

+0

दरअसल यह दूसरी तरफ था। मुझे इनपुट को सत्यापित करने की आवश्यकता नहीं है लेकिन इनपुट फ़ील्ड के डिफ़ॉल्ट मान को प्रारूपित करें। फिर भी धन्यवाद! – Stian

0

ऐसा लगता है कि आप वास्तव में मुद्रा को स्वरूपित कर रहे हैं।

<f:convertNumber type="currency" /> 

इस टैग के कुछ दिलचस्प गुण हैं: locale, currencyCode, integerOnly, currencySymbol और pattern वहां पहले से ही मुद्राओं है कि आप करने के लिए कई विकल्प प्रदान कर सकते हैं संभाल करने के लिए एक विशिष्ट फ़ॉर्मेटर मौजूद है।