2011-04-16 10 views
5

में एक कस्टम पेज जोड़ना मेरे पास वसंत रू के बारे में एक सवाल है।वसंत roo

आप अपने वेब एप्लिकेशन में एक कस्टम पेज कैसे जोड़ सकते हैं? यदि मैं मानक सर्वलेट का उपयोग कर रहा हूं, तो यह वास्तव में बुनियादी और आसान लगता है, लेकिन मैं स्प्रिंग रू में ऐसा करने के लिए पूरी तरह उलझन में हूं। मैं चाहता हूं कि मुख्य पृष्ठ (मेन्यू आदि के साथ) में एक लिंक हो जो मेरे कस्टम पेज से लिंक हो।

मैंने एप्लिकेशन में एक नया सर्वलेट जोड़ने की कोशिश की है, जिसने अपना पथ मैपिंग/कस्टम पेज पर सेट किया है। लेकिन जब मैं http://localhost:8080/myapp/custompage तक पहुंचता हूं, तो यह दिखाता है कि संसाधन अनुपलब्ध है।

मैं मुख्य पृष्ठ में कोई लिंक भी नहीं जोड़ सकता, मैंने मेनू.जेस्पैक्स को सीधे संपादित करने का प्रयास किया है और यह विफल हो जाता है।

क्या कोई मुझे इस पर प्रकाश डाल सकता है? किसी भी प्रकार की सहायता सराहनीय होगी।

+0

'menu.jspx' के संपादन के साथ आपने किस तरह की असफलता का अनुभव किया? – Constantiner

+0

ठीक है, मेनू सूची में कुछ भी नहीं बदला। मैंने menu.jspx में एक सूची कॉपी करने की कोशिश की है (इस प्रकार, सूची को दोगुना कर दिया गया है) साथ ही साथ अपनी खुद की चीजों को एक सरल 'हेल्लो' जैसे जोड़ना है। लेकिन यह एक चीज़ नहीं बदलता है। एक 'हैलो' भी नहीं दिखाता – Tetrax

+0

क्या आपने अपना कोड पुनः संकलित किया है और इसे फिर से तैनात किया है? –

उत्तर

6

सबसे पहले अपने {project_root}/src/main/webapp/WEB-INF/spring/webmvc-config.xml संपादित करें और अपने नए पृष्ठ के लिए नई mvc:view-controller परिभाषा जोड़ें। कुछ की तरह:

<mvc:view-controller path="/custompage" /> 

फिर {project_root}/src/main/webapp/WEB-INF/views/views.xml खोलने के लिए और निम्नलिखित परिभाषा जोड़ें:

<definition extends="public" name="custompage"> 
    <put-attribute name="body" value="/WEB-INF/views/custompage.jspx"/> 
    </definition> 

और अपने custompage.jspx{project_root}/src/main/webapp/WEB-INF/views/ फ़ोल्डर में जोड़े गए।

और फिर {project_root}/src/main/webapp/WEB-INF/views/menu.jspx और url="/custompage" के साथ menu:item संपादित करें।

मुझे लगता है कि इसे काम करना चाहिए।

+0

बहुत बहुत धन्यवाद। ये अच्छी तरह काम करता है। – Tetrax

+1

यदि आप कुछ चीजों की गणना करना चाहते हैं और फिर इसे पृष्ठ पर पास करना चाहते हैं तो आप नियंत्रक उत्पन्न करना पसंद कर सकते हैं। आप टाइल्स की अपनी परिभाषा भी ले सकते हैं जो आरओ थीम पर निर्भर नहीं है। – geoaxis

6

सबसे आसान तरीका यह है कि रू आपके लिए ऐसा करने दें। controller class --class ~.web.CustomPageController --preferredMapping /custompage का उपयोग करें और रू आपके लिए सबकुछ तैयार करेगा।

सुनिश्चित करें कि आपके पास परिणामी नियंत्रक में केवल वही है जो आपके पास केवल एक ही मैपिंग प्रति अनुरोध है (मुझे लगता है कि 1.1.4 में डिफ़ॉल्ट यह है कि एक सरल के लिए एक अस्पष्ट मैपिंग है 'प्राप्त करें')

+1

मैंने ऐसा किया, और नियंत्रक को केवल एक "इंडेक्स" विधि तक पहुंचा दिया जो "कस्टम पेज/इंडेक्स" देता है, और मैंने सत्यापित किया कि उन दृश्यों को बनाए गए टुकड़े बनाए गए हैं। फिर भी, जब मैं/myapp/custompage पर ब्राउज़ करता हूं, तो मुझे रू "संसाधन नहीं मिला" पृष्ठ मिलता है। –

2

मैंने वही किया। मुझे एक ही समस्या मिली। तब मैंने देखा webmvc-config.xml<mvc:view-controller path="/custompage/index"/> की प्रविष्टि नहीं है। मैंने प्रवेश किया और अब यह काम कर रहा है। सुनिश्चित करें कि उपर्युक्त कोड की उपस्थिति।