2

我在这篇文章中被告知,可以使用 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扩展的支持?

谢谢您的帮助。

4

1 回答 1

1

您收到“请求的资源不可用”,因为我您的 servlet 映射web.xml未映射item.jsp到 Spring DispatcherServlet

无论如何,如果您的要求只是支持旧 URL,则有更有效的方法来实现。

大多数 lo-fi 是创建与旧 url 具有相同名称和结构的 jsps,并在每个 jsps 中添加 scriptlet,如

<%
response.setStatus(301);
response.setHeader( "Location", "/new-url.htm" );
response.setHeader( "Connection", "close" );
%>

我通常不推荐 scriptlet,但在这种情况下,它是最简单的解决方案。

如果您有像 apache 这样的前端网络服务器,您还可以添加 301 重定向规则。

希望这可以帮助。

于 2013-04-23T11:28:29.087 回答