SPRING 3 MVC - URI模板错误?

时间:2011-05-11 22:28:49

标签: spring-mvc

以下是我的控制器类的代码:

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 个答案:

答案 0 :(得分:1)

当我第一次使用Spring Source Tool套件时遇到了这个问题。经过这么多的努力,我发现控制器类的问题并不是最新的。

当我第一次编写类似的代码时,我没有使用URI模板变量并将其部署在tc服务器上。后来我多次添加URI模板并重新发布/重新启动服务器,以为控制器类会自动构建。

后来我发现我在“项目”菜单上未选中“自动构建”运行项目。

如果您使用STS或任何基于eclipse的工具,请确保选中“自动构建”,并确保部署最新的Controller类。

答案 1 :(得分:0)

您需要从* -servlet.xml上下文文件中发布viewResolver bean以确定,但是您的视图解析器可能会定义一个“.jsp”后缀,这意味着您无需指定它。 JSP的根目录也将默认为/ WEB-INF。

不要在控制器中返回“WEB-INF / views / home.jsp”,而是尝试返回“views / home”。