如何在spring中为扩展名为.jsp的URL提供支持

时间:2013-04-23 09:57:51

标签: java url spring-mvc web mapping

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 扩展程序的支持?

感谢您的帮助。

1 个答案:

答案 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重定向规则。

希望这有帮助。