2014-01-08 139 views
1

我嘗試將Spring MVC實現到現有的應用程序中,但即使花費數小時試圖弄清楚什麼是錯誤,它仍然不起作用。 Spring應用程序的JSP已經運行,沒有問題,並且仍在運行。每次請求都應該適合MVC servlet中的模式時,它實際上是發送給它的。但我無法在控制器中捕捉到它。在現有Spring中使用Spring MVC和JSP應用程序

首先我的web.xml中,我定義的使用servlet的

<servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 
    <servlet> 
     <servlet-name>PdfServlet</servlet-name> 
     <servlet-class>servlet.PdfServlet</servlet-class> 
    </servlet> 

    <servlet> 
     <servlet-name>dispatcher</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet- class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>*.htm</url-pattern>  
    </servlet-mapping> 

然後,我創建這個servlet文件調度-servlet.xml中,只有具有以下屬性:

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/> 

<context:component-scan base-package="at.htlstp.app.mvc"/> 

<context:annotation-config /> 

現在給定控制器是實例化,我可以找出@PostConstruct方法。但它不會在請求中調用。

@Controller 
//@RequestMapping(value = "*.htm") 
public class AndroidController implements Serializable { 

    @PostConstruct 
    private void setup() { 
     System.out.println("Class created!"); 
    } 


    @RequestMapping(value = "test.htm", method = RequestMethod.GET) 
    public String findDepatment() { 
     System.out.println("Method called"); 
     return "<H1>bar</H1>"; 
    } 

} 

每當我試圖請求具有匹配* .htm請求的應用程序,我只得到以下錯誤。

WARNING: No mapping found for HTTP request with URI [/ViewMyMarks/test.htm] in DispatcherServlet with name 'dispatcher' 

如果過去有同樣的問題,我會很感激你的答案。我唯一的想法是,Controller用於JSP請求,而MVC沒有實例化它。然後它不能找到匹配的模式。但我能做些什麼呢?

回答

1

您的調度程序servlet.xml沒有將mvc驅動的註釋信息放在給定的行中。

<mvc:annotation-driven /> 

,並請求映射把從/

@RequestMapping(value = "/test.htm", method = RequestMethod.GET) 

的啓動值讀彈簧MVC的文檔。它會幫助你瞭解彈簧mvc http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html

+0

謝謝你,這個伎倆!我很長一段時間沒有使用MVC,並認爲組件掃描可以做到這一點。應用程序正在工作 – user3172493

相關問題