1

我正在使用 Spring mvc,我遇到了这个问题:

我的控制器中的每个方法都返回一个 jsp 的名称,至于演示文稿 - 一切都很好。问题在于链接(hrefs)。窗口的链接不会改变,而相对链接会将我带到不想要的地方。

例如(不是真实的):

我有一个可以通过以下方式访问的视图:/test1/{id} 以及我可以通过以下方式访问的更新视图/test1/{id}/update

post 方法保存并返回第一个视图(让您回到查看屏幕)。演示没问题,我可以看到更新的数据。但是窗口 url 没有改变,如果我再次尝试更新,我会被发送到这个位置: /test1/{id}/update/update.

我该如何解决这个问题?

4

1 回答 1

1

简短的回答:使用重定向!

必须在做一些持久的事情时使用重定向。我猜您在发布到这些网址时正在修改数据。所以你绝对需要使用重定向。这解决了用户在进行更新后刷新页面时的问题。你有没有注意到浏览器关于重新发送数据的警告?

示例代码:

@RequestMapping("/test1/{id}/update")
public ModelAndView update(@PathVariable("id") String id){
    // make an update
    return new ModelAndView("redirect:/test1/" + id);
}

这将向用户发送 301 或 302 HTTP 状态。并且浏览器将立即跟随重定向 url。请注意,您不应使用视图名称,而应使用 url。

于 2013-01-20T10:33:13.420 回答