jsf - प्रीफाफेस कैलेंडर पिकर MMM पैटर्न के साथ काम नहीं करता है




primefaces calendar (2)

मैंने मेरे पक्ष में निम्नलिखित पैटर्न का इस्तेमाल किया है

ईईई, डीडी एमएमएम, yyyy

<p:calendar value="#{calendarBean.date3}" pattern="EEE, dd/MMM/yyyy HH:mm" />

ईईई, डीडी एम.एम., यैय

<p:calendar value="#{calendarBean.date2}" pattern="EEE, dd MM, yyyy HH:mm" />

यह मेरे पक्ष में ठीक wokring है

मैं यहाँ दिखाया गया प्राइमफ़ेस से एक कैलेंडर घटक का उपयोग करना चाहता हूं: प्राइमफैसेस - शोकेस: कैलेंडर - समय

<p:calendar id="startDateSelected" value="#{myBB.dateSelected}" 
pattern="dd/MMM/yyyy">

Date() dateSelected केवल एक सादा Date()

यह शोकेस में वर्णित पैटर्न के लिए ठीक काम करता है, लेकिन मैं निम्नलिखित पैटर्न का उपयोग करना चाहता हूं:

dd-MMM-yyyy HH:mm

जब मैं इसका उपयोग करता हूं, पिकर के साथ संवाद दिखाई नहीं देता। जब मैं पैटर्न से समय निकालता हूं, पिकर काम करता है (केवल स्पष्ट रूप से तारीख के लिए) और अगर मैं MM को MM बदलता हूं, यह भी काम करता है।

  • dd-MMM-yyyy काम करता है
  • dd-MM-yyyy HH:mm काम करता है
  • dd-MMM-yyyy HH:mm काम नहीं करता है

इसलिए केवल एक समस्या आईएमएम और समय का संयोजन है कोई विचार?


<h:outputStyleSheet> द्वारा सीएसएस स्टाइलशीट आयात करते समय, स्टाइलशीट को FacesServlet द्वारा FacesServlet माध्यम से आयात और संसाधित किया /javax.faces.resource/* । प्रश्न में स्टाइलशीट को इंगित जेनरेट <link> तत्व देखें और आप समझेंगे।

इसके बजाय आपको #{resource['library:location']} का उपयोग करने के लिए सभी url() निर्भरताओं को बदलना होगा। जेएसएफ फिर इसे सही रास्ते से स्वतः बदल देगा। आपके फ़ोल्डर की संरचना को देखते हुए, आपको प्रतिस्थापित करने की आवश्यकता है

.c2 {
    background: url("/resources/images/smiley.jpg");  
}

द्वारा

.c2 {
    background: url("#{resource['images/smiley.jpg']}");  
}

यह मानते हुए कि आपका FacesServlet संदर्भ नाम playground का playground और आपके FacesServlet को *.xhtml FacesServlet पर मैप किया गया है, तो उपरोक्त को वापस लौटाए गए सीएसएस फ़ाइल में समाप्त होना चाहिए

.c2 {
    background: url("/playground/javax.faces.resource/images/smiley.jpg.xhtml");
}

नोट किया जाना चाहिए कि जेएसएफ कार्यान्वयन केवल सीएसएस फ़ाइल पर पहले अनुरोध के दौरान निर्धारित होगा यदि इसमें ईएल एक्सप्रेशन शामिल हैं। यदि ऐसा नहीं होता है तो यह दक्षता के लिए होगा और अब सीएसएस फ़ाइल सामग्री का मूल्यांकन करने का प्रयास नहीं करेगा। इसलिए यदि आप पहली बार किसी सीएसएस फ़ाइल में ईएल अभिव्यक्ति जोड़ते हैं, तो आपको जेएसएफ को सीएसएस फ़ाइल को दोबारा जांचने के लिए पूरे एप्लिकेशन को पुनरारंभ करना होगा।

यदि आप प्राइमफ़ेस जैसे किसी घटक लाइब्रेरी से संसाधन का संदर्भ देना चाहते हैं, तो लाइब्रेरी नाम उपसर्ग करें, इसके साथ अलग:। उदाहरण के लिए जब आप प्राइमफेस "स्टार्ट" थीम का उपयोग कर रहे हैं जिसे primefaces-start द्वारा पहचाना जाता है

.c2 {
    background: url("#{resource['primefaces-start:images/ui-bg_gloss-wave_50_6eac2c_500x100.png']}");  
}

यह के रूप में उत्पन्न किया जाएगा

.c2 {
    background: url("/playground/javax.faces.resource/images/ui-bg_gloss-wave_50_6eac2c_500x100.png.xhtml?ln=primefaces-start");
}

यह भी देखें:

कंक्रीट समस्या से असंबंधित , जिस तरह से आप library का उपयोग करते हैं वह बिल्कुल सही नहीं है। यह सभी संबंधित सीएसएस / जेएस / छवि संसाधनों का सामान्य पहचानकर्ता / सबफ़ोल्डर होना है। मुख्य विचार यह है कि library बदलकर पूरे लुक'फेल को बदलने में सक्षम होना चाहिए (जिसे ईएल द्वारा किया जा सकता है)। हालांकि आप डिफ़ॉल्ट पुस्तकालय पर भरोसा करते हैं। उस स्थिति में, आप library को अपने <h:outputStylesheet> और #{resource}

<h:outputStylesheet name="css/style.css"  />

यह भी देखें:







jsf primefaces calendar