使用 Spring security 设置默认安全页面(在内存中)后,我收到以下错误:
No mapping found for HTTP request with URI [/myproject/] in DispatcherServlet with name 'appServlet'
更新: 通过将组件扫描(扫描我的安全包)从 servlet-context.xml 移动到 root-context.xml 解决了这个问题
最佳答案
您的错误消息告诉 No mapping found for HTTP request with URI [/addressbook/]
。换句话说,您还没有为URL /addressbook
映射一个请求映射。
如果您希望项目的基本 URL 为 /addressbook
然后更改 web.xml 如下
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
....
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/addressbook/*</url-pattern>
</servlet-mapping>
Controller
@Controller
public class HomeController {
@RequestMapping(value="/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
return "home";
}
}
然后转到浏览器并输入以下内容。应该有一个/
最后。
http://hostname:port/addressbook/
但是如果你想改变上下文根,你不能通过web.xml来做到这一点。上下文根不是标准 web.xml 文件的一部分。您可以通过在 eclipse 中执行以下操作来更改此设置
- 在项目属性中,单击
Web Project Settings
(假设您处于动态 Web 项目中。)唯一的配置值是“Context root:” - 将“上下文根”更改为
/addressbook
- 将 web.xml url-pattern 更改为
<url-pattern>/</url-pattern>
- 重建
- 从 tomcat 中删除项目
- 重新部署。
关于java - Spring 错误: No mapping found for HTTP request with URI [/myproject/] in DispatcherServlet with name 'appServlet' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29589692/