2011-09-18 11 views
5

में हैंडलर मैपिंग को परिभाषित करता हूं तो मैं अपने @RequestMappings को नहीं उठा रहा हूं, मैं अपने नियंत्रकों पर <context:component-scan> और @RequestMapping एनोटेशन के साथ स्प्रिंग 3.0.5 का उपयोग कर रहा हूं। यह काम करता है, और यूआरएल पैकेज स्कैन द्वारा पंजीकृत हैं।<संदर्भ: घटक-स्कैन> अगर मैं XML

लेकिन एक समस्या है जब मेरे पास XML कॉन्फ़िगरेशन में एक हैंडलर मानचित्रण परिभाषित किया गया है। @RequestMapping एनोटेशन नहीं रह गया है उठाया जाता है।

मैं एक साधारण आवेदन करने के लिए समस्या अलग-थलग पड़ गए हैं।

अगर मैं निम्नलिखित नियंत्रक है:

package test.pack.age; 

import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 

@Controller 
public class TestController { 
    @RequestMapping(value="/test") 
    public String showTestPage() { 
     return "testPage"; 
    } 
} 

और निम्नलिखित विन्यास:

<context:component-scan base-package="test.pack.age" /> 
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> 
    <property name="prefix" value="/WEB-INF/jsp/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

आवेदन सही ढंग से काम करता है और यूआरएल /test पंजीकृत है और ठीक से काम करता है।

18/09/2011 20:02:55 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping INFO Mapped URL path [/test] onto handler 'testController' 
18/09/2011 20:02:55 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping INFO Mapped URL path [/test] onto handler 'testController' 

लेकिन मैं एक्सएमएल यह अब काम करता है के लिए एक हैंडलर मैपिंग जोड़ें यदि। यहां तक ​​कि कुछ इस तरह सरल:

<bean id="handlerMappings" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" /> 

जो मूल रूप से कुछ नहीं करता है, और <context:component-scan> नहीं रह गया है मेरी यूआरएल पंजीकृत करता है।

मुझे कुछ (तृतीय पक्ष) नियंत्रकों के लिए एक अतिरिक्त हैंडलर मैपिंग की आवश्यकता है, जिसे मैं एनोटेट नहीं कर सकता, लेकिन जब इसे जोड़ते समय यह मेरे सभी @RequestMapping एस को तोड़ देता है।

यह सामान्य है? एक दोष? (मैं वसंत संस्करण को बदल नहीं सकते)

मैं कुछ याद आ रही है?

उत्तर

4

क्या यह सामान्य है? एक दोष? (मैं वसंत संस्करण को बदल नहीं सकते)

मैं कुछ याद आ रही है?

मुझे कुछ याद आ रही थी: डी। DefaultAnnotationHandlerMapping के लिए इस वसंत के Javadocs में दफन मिला:

नोट: यदि आप अपने DispatcherServlet संदर्भ में कस्टम HandlerMapping सेम परिभाषित हैं, तो आप के बाद से कस्टम HandlerMapping सेम डिफ़ॉल्ट मानचित्रण रणनीतियों की जगह, एक DefaultAnnotationHandlerMapping सेम स्पष्ट रूप से जोड़ने की जरूरत है।

जोड़ा गया यह मेरा config एक्सएमएल के लिए और अब सब कुछ काम करता है:

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" /> 
0

मुझे यकीन नहीं है कि आपका एनोटेटेड Controller क्यों नहीं उठाया जा रहा है, लेकिन मुझे लगता है कि आपकी समस्या id में है, तो आप अपना SimpleUrlHandlerMapping प्रदान करते हैं। यह handlerMapping होना चाहिए।

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