我正在使用Spring mvc,我遇到了这个问题:
我的控制器中的每个方法都返回一个jsp的名称,而对于演示文稿 - 一切都很好。问题在于链接(hrefs)。窗口的链接不会改变,相关链接会将我带到不需要的地方。
例如(不是真实的):
我有一个可以访问的视图:/test1/{id}
以及/test1/{id}/update
post方法,保存并返回第一个视图(让您返回查看屏幕)。
演示文稿没问题,我可以看到更新的数据。但是窗口网址没有更改,如果我再次尝试更新,我会被发送到此位置:/test1/{id}/update/update.
我该如何解决这个问题?
答案 0 :(得分:1)
简短回答:使用重定向!
必须在执行持久性操作时使用重定向。我猜你在发布到那些网址时修改数据。所以你绝对需要使用重定向。当用户在进行更新后刷新页面时,这可以解决问题。您是否注意到浏览器有关重新发送数据的警告?
示例代码:
@RequestMapping("/test1/{id}/update")
public ModelAndView update(@PathVariable("id") String id){
// make an update
return new ModelAndView("redirect:/test1/" + id);
}
这将向用户发送301或302 HTTP状态。浏览器将imeddiately跟随重定向网址。请注意,您不应使用视图名称,而应使用网址。