I have been told in this post使用Spring可以在URL结构中使用.jsp扩展名。我一直试图用以下代码实现它:
HelloController.java
@Controller
@RequestMapping("/welcome")
public class HelloController {
@RequestMapping(value="/item.jsp", method = RequestMethod.GET)
public String helloDotJSP(ModelMap model) {
System.out.println("/item.jsp RequestMapping");
model.addAttribute("message", "Spring 3 MVC Hello World");
return "item";
}
}
当我尝试访问页面 localhost:8080 / app / welcome / item.jsp 时,我收到错误请求的资源不可用。但是当我尝试将 /item.jsp 的扩展名修改为例如 /item.other ,然后开始工作。如何添加对 .jsp 扩展程序的支持?
感谢您的帮助。
答案 0 :(得分:1)
您收到“请求的资源不可用”,因为web.xml
中的servlet映射未将item.jsp
映射到Spring DispatcherServlet
。
无论如何,如果您的要求只是为了支持旧网址,那么有更有效的方法可以做到这一点。
大多数低保真是创建与旧网址名称和结构相同的jsps,并在每个jsps中添加像
这样的scriptlet<%
response.setStatus(301);
response.setHeader( "Location", "/new-url.htm" );
response.setHeader( "Connection", "close" );
%>
我通常不建议使用scriptlet,但在这种情况下,这是最简单的解决方案。
如果你有像apache这样的前端网络服务器,你也可以添加301重定向规则。
希望这有帮助。