2011-09-14 12 views
9

मुझे पता है कि वसंत ऋतु में मैं स्वागत-फ़ाइल है, जो वेब-INF फ़ोल्डर के बाहर किया जाना चाहिए परिभाषित करना होगा, इसलिए मैं इस तरह इसे परिभाषित:वसंत का स्वागत-फ़ाइल-सूची सही मानचित्रण

web.xml:

<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 


<servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

लेकिन असल में मेरा असली कोड में है वेब-INF/jsp/contact.jsp

तो मैं हमेशा इस क्या करना है:

<jsp:forward page="/index"></jsp:forward> 

और मेरे नियंत्रक में इसका मतलब है:

@RequestMapping("/index") 
public String listContacts(Map<String, Object> map) { 

    map.put("contact", new Contact()); 
    map.put("contactList", contactService.listContact()); 

    return "contact"; 
} 

मैं इसे कैसे इस तरह से कर सकते हैं, कि स्वागत-फ़ाइल हमेशा मेरी सूचकांक मानचित्रण, जो contact.jsp की ओर जाता है को जाता है?

, सवाल पूछने के लिए अगर यह भ्रामक था स्वतंत्र महसूस ...

उत्तर

22
@RequestMapping({"/index", "/"}) 

और

<welcome-file-list> 
    <welcome-file></welcome-file> 
</welcome-file-list> 

मेरे लिए काम किया।

+0

कोई मैपिंग नाम 'वसंत', अद्यतन पहली पोस्ट (web.xml में जोड़ा सर्वलेट-मैपिंग) के साथ यूआरआई [/ वेब /] DispatcherServlet में साथ HTTP अनुरोध के लिए पाया देखें। – Jaanus

+0

@ जेनस - – Bozho

+1

अपडेट किया गया यह काम किया, धन्यवाद! क्या यह उचित बात है, या मुझे आमतौर पर स्वागत फ़ाइल होना चाहिए? – Jaanus

0

का उपयोग कर

<welcome-file-list> 
    <welcome-file>/index</welcome-file> 
</welcome-file-list> 
+0

नाम 'वसंत' के साथ डिस्पैटर सर्वलेट में यूआरआई [/ web /] के साथ HTTP अनुरोध के लिए कोई मैपिंग नहीं मिली, पहली पोस्ट अपडेट की गई (वेब.एक्सएमएल में सर्वलेट-मैपिंग जोड़ा गया)। – Jaanus

4

मेरा उत्तर देखें प्रयास करें: https://stackoverflow.com/a/15551678/173149 या बस:

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
    <url-pattern>/index.htm</url-pattern> <<== *1* 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>index.htm</welcome-file> <<== *2* 
</welcome-file-list> 
2

जावा विन्यास के मामले में आप वर्ग कि WebMvcConfigurerAdapter

@Override 
public void addViewControllers(ViewControllerRegistry registry) { 
    registry.addViewController("/").setViewName("/index"); 
} 

@Override 
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 
    configurer.enable(); 
} 

फैली में दो तरीकों ओवरराइड कर सकते हैं यदि आप index.html की सेवा स्पष्ट रूप से करना चाहते हैं, तो उसे संसाधन ओवरराइड में बदल दें नीचे के रूप में एक ही कक्षा में एक विधि:

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/index.html").addResourceLocations("/WEB-INF/views/index.html"); 
} 

बेशक addResourceLocations चाहिए फ़ोल्डर अपने विचार रखते हैं करने के लिए चुना गया है।

these samples

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