【发布时间】:2013-06-12 15:40:43
【问题描述】:
我正在开发我的 Spring 应用程序,按照下面的代码,我将多个 URL 映射到一种方法。我正在制作一种“root”方法来服务所有以 index 和 root 开头的请求。
@RequestMapping(value = {"/", "index*"}, method = RequestMethod.GET)
public String root(Model model) {
logger.info("Welcome to index page.");
model.addAttribute("hello", "Welcome to index page." );
return "index";
}
上述"index*" 在"index", "index123", "index.html" and "index.txt" 的情况下工作正常,请求被定向到映射方法,即"root",但它不适用于"index.jsp"。如果是"index.jsp",我会收到"HTTP Status 404" "The requested resource is not available"。
摘自web.xml
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
有人可以告诉我这背后的原因以及如何使它起作用吗?
【问题讨论】:
-
我不想映射所有的 jsps,只想有一个 index* 类型请求的单一方法。
-
在您的 web.xml 中,调度程序 servlet 是否映射为“/” url?
-
是的,在我上面的问题中添加了来自
web.xml的摘录。
标签: java spring spring-mvc annotations http-status-code-404