java8 + idea2016 + spring mvc4.3 + maven3.3 + tomcat8 + ubuntu
访问localhost:8080/HelloWeb/hello或者localhost:8080/hello都会返回404的状态码:


Web.xml
Spring MVC Form Handling
HelloWeb
org.springframework.web.servlet.DispatcherServlet
1
HelloWeb
/
HelloWeb-servlet.xml
HelloController
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@RequestMapping(value="/hello")
public String printHello(ModelMap model) {
model.addAttribute("message", "Hello Spring MVC Framework!");
return "hello";
}
}
hello.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Hello World
${message}
我猜测原因是spring mvc没有识别@Controller注解,但是我在HelloWeb-servlet.xml中已经声明了,请问发生错误的原因可能是什么?
按照@傅易君的提示,参考so上面,我加入了,但是还是不行:
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
把HelloWeb-servlet.xml放到resources里面,web.xml里面改为
<servlet>
配置HelloWeb-servlet.xml中声明了<context:component-scan base-package="org.neo.sml"/>
访问路径写http://localhost:8080/sml/hello就可以了
controller打个断电,看看是没进controller吗?
试试 localhost:8080/sml
先开启注解支持:
主要有以下几个方面需要注意:
1.在web.xml文件中是否配置xml文件的位置,保证HelloWeb-servlet.xml在src目录下,配置如下:
2.在HelloWeb-servlet.xml文件中是否配置,如下所示:
3.项目启动的目录是否正确,是否需要添加项目名称;
4.启动之后,目录是否正确;
这个路径我想你没输对吧?为什么是
HelloWeb而不是sml?一般不是项目的名称么,默认是。或者,你找到
tomcat的server.xml,找到如下配置。