2011-05-11 48 views
0

這裏是我的控制器類的代碼:SPRING 3 MVC - URI模板錯誤?

package edu.byu.cio.test.web.Controller; 

import org.springframework.stereotype.Controller; 

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

import org.springframework.web.bind.annotation.PathVariable; 

import org.springframework.web.bind.annotation.RequestMethod; 

import org.springframework.web.bind.annotation.RequestParam; 


/** 
* Handles requests for the application home page. 
*/ 


@Controller 
public class HomeController { 

@RequestMapping(value = "/") 

public String helloWorld() { 

System.out.println("HomeController: Passing through..."); 

return "WEB-INF/views/home.jsp"; 
} 


@RequestMapping(value="/name/{Name}", method = RequestMethod.GET) 

public String compare(@PathVariable("Name") String Name) { 

return "WEB-INF/views/home.jsp"; 

} 


} 

我感興趣的調用第二種方法。

當我做GET請求爲:

http://localhost:8081/mvc-basic/name/somename 

注意:我已經配置它的端口監聽8081

我得到以下錯誤:

HTTP Status 404 - /mvc-basic/name/WEB-INF/views/home.jsp 

-------------------------------------------------------------------------------- 

type Status report 

message /mvc-basic/name/WEB-INF/views/home.jsp 

description The requested resource (/mvc-basic/name/WEB-INF/views/home.jsp) is not available. 


-------------------------------------------------------------------------------- 

Apache Tomcat/6.0.26 

我認爲URI模式是正確的,但我想知道爲什麼它會顯示這個錯誤。你在上面的代碼中找到任何錯誤嗎?我感謝您的幫助。

+2

現在格式化代碼,給我們你的調度器 - 小服務程序配置,並刪除多個問號。 – Bozho 2011-05-11 22:32:17

回答

1

我第一次使用Spring Source Tool套件時遇到了這個問題。經過這麼多的鬥爭,我發現它是控制器類的問題並不是最新的。

當我第一次寫類似的代碼段時,我沒有使用URI模板變量,並將其部署在tc服務器上。後來我添加了URI模板,並重新發布/重新啓動服務器多次認爲控制器類會自動生成。

後來我發現我在「項目」菜單上選中'自動構建'未選中項目。

如果您使用STS或任何基於eclipse的工具,請確保您選中'自動構建',並確保您部署了最新的Controller類。

0

您需要從您的* -servlet.xml上下文文件中發佈您的viewResolver bean以確保您的視圖解析器具有已定義的「.jsp」後綴,這意味着您無需指定它。您的JSP根目錄也將默認爲/ WEB-INF。

不要在控制器中返回「WEB-INF/views/home.jsp」,請嘗試返回「views/home」。