当我这样做时。
@RequestMapping("/folder/{name}.jsp")
public ModelAndView catchAll(@PathVariable String viewName) {
return new ModelAndView("legacy/" + viewName);
}
它在浏览器上出现错误
legacy / 123.jsp不可用
如何解决此问题
如果我有一个id列表,
我希望浏览器显示为/ legacy / 1 / legacy / 2等,以便我可以在春天编程
答案 0 :(得分:2)
您需要将123.jsp放在放置JSP的目录的legacy
子目录中。
但我猜这不是你想要的:我猜想你想建立一些转发。在这种情况下,您必须返回重定向视图。
@RequestMapping("/folder/{name}.jsp")
public ModelAndView catchAll(@PathVariable String viewName) {
return new ModelAndView(new RedirectView("legacy/" + viewName + ".jsp"));
}
答案 1 :(得分:0)
你告诉Spring渲染一个不存在的jsp页面。如果你的jsp的名字是“legacy.jsp”,那就是你渲染的视图,你只是根据参数将另一个对象传递给视图。如果您希望legacy/123
带您到“legacy.jsp”,它将显示ID为123的Legacy对象,那么您可以这样做:
@RequestMapping("/legacy/{id}")
public ModelAndView catchAll(@PathVariable("id") String id) {
Legacy legacy = // Get the object from your database using the id
return new ModelAndView("legacy", "legacy", legacy); // insert the legacy object into your view, it will be accessed by the name "legacy"
}
因此,您可以在浏览器中输入网址“/ legacy / 123”(或单击指向该链接的链接),然后使用标识{{1}将legacy.jsp
与您提取的对象一起呈现}。