मैं एक "जेनेरिक" दृश्य को लागू करने की कोशिश कर रहा हूं जहां प्रदर्शित सामग्री का हिस्सा यूआरएल पर निर्भर करता है। जैसेक्या जेएसएफ में रूटिंग लागू करने का कोई आसान तरीका है?
तो एक गैर मौजूदा फ़ाइल को /somepath/somepage.xhtml
अंक, बजाय एक 404 त्रुटि मैं एक सामान्य देखने के लिए, /genericview.xhtml
, जहां मैं की तरह कुछ है का उपयोग कर डेटाबेस से /somepath/somepage.xhtml
की सामग्री प्राप्त करने की कोशिश करना चाहते करने के लिए सीधे जाने के:
<h:outputText value="#{genericViewBean.content_lg}"
escape="false" />
जो, समर्थन सेम द्वारा पाया, उत्पादन एक tgenericcontent
मेज से डेटाबेस प्रविष्टि की सामग्री, मूल रूप से अनुरोध किया viewId के आधार पर होता है अगर:
webpath | content
/somepath/somepage.xhtml | <p>This is a test</p>
/someotherpath/someotherpage.xhtml | <p>A different test</p>
हैं सामग्री को उस तालिका में नहीं मिला है तो मानक 404 त्रुटि वापस कर दी जाएगी।
निकटतम मुझे केवल फ़ाइल पथ को बदलने के लिए /genericview.xhtml
क्लोन करने के लिए मिला था (उदाहरण के लिए, /somepath/somepage.xhtml
पर)। लेकिन यह मुझे प्रति दृश्य फ़ाइल की एक सटीक प्रति प्राप्त करता है, यह काफी गन्दा है, और यह मुझे मेरे डेटाबेस में एक प्रविष्टि जोड़कर एक नया यूआरएल बनाने की अनुमति नहीं देता है।
/genericview.xhtml
क्लोनिंग के बिना मुझे एक ही परिणाम कैसे मिल सकता है?
(पी.एस: मैं prettyfaces के बारे में पढ़ा है, लेकिन वहाँ एक सरल समाधान नहीं है)
तो ... एक फ्रंट नियंत्रक? 'FacesServlet' पहले से क्या कर रहा है के विपरीत नहीं है? Prettyfaces या अपने स्वयं के सामने नियंत्रक लिखने (जो किसी मौजूदा पेज या सर्वलेट के अनुरूप होना चाहिए) आपके बहुत ही विकल्प हैं। अपने स्वयं के फ्रंट कंट्रोलर के भीतर, अब विकल्पों को दिए गए विभिन्न तंत्रों – kolossus
का उपयोग करके उचित दृश्य के अनुरोध को भेजने के लिए लचीलापन है, अगर मैं सुंदरता तैनात करता हूं और चेहरे-कॉन्फ़िगर को/गतिशील/* पथ/genericview.xhtml? path = * या ऐसा कुछ ... – NotGaeL