SpringMVC下的欢迎页面无法访问到某个Controller内的请求方法。

我的控制器是TestController,请求方法是@RequestMapping(value="welcome") public String welcome().....

请求方法最后会转发到一个html页面,

经测试http://localhost:8080/welcome是一切正常的。

现在希望让/welcome作为欢迎页面,

我在web.xml中,追加了标签

<welcome-file-list>
    <welcome-file>welcome</welcome-file>
</welcome-file-list>

并在DispatcherServlet后面,追加了/welcome的<servlet-mapping>

但结果是,http://localhost:8080/welcome依然能正常访问,http://localhost:8080报404,后台提示No mapping found for HTTP request with URI [/] in DispatcherServlet with name 'spring-webmvc'

阅读 7.4k
5 个回答

web.xml里面的追加的配置是没有问题的。

引起这个问题的原因有两个,

一是DispatcherServlet的配置里面漏了<mvc:default-servlet-handler />
导致一直在请求[/]URI,而不是我所需要的URI

二是由于我用的是jetty,没有把webdefault.xml里的welcomeServlets改成true,
导致只让请求静态文件,不让请求servlet

在控制器里加一个

@RequestMapping(value = "/", method = RequestMethod.GET)
    public String index()...```
    
    

Spring没有配置默认路径的话就会把8080后的当成指定路径去查询,所以当配置了"/",8080后不填就会进入到该接口,你可以看看这个。Spring配置默认路径

写这个Controller即可,无需配置web.xml,表示http://127.0.0.1 这个请求,URL后面不接任何东西。

@Controller
public class IndexController {

    @RequestMapping
    public String index() {
        return "webcome";
    }

}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题