2011-05-11 93 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”。