2011-05-16 63 views
1

我有一个列表页面,列出所有项目,每个项目都有一个删除链接。用户可以点击这个链接删除这个项目,这是删除链接格式:http://localhost:8080/list.htm?op=del&id=1234如何更改客户端点击链接时返回的URL

当用户点击删除链接时,它将返回到列表页面。但是这有一个问题,当用户刷新页面时,它会再次调用删除操作,这会导致错误。那么,如何在服务器端回退响应时更改URL?我希望链接仍然是 http://localhost:8080/list.htm

感谢 顺便说一句,我使用Spring MVC

张春华

回答

0

假设您没有在删除操作中返回任何数据,只需返回一个HTTP 303响应,并将Location标头设置为'list.htm'。另外,您也可以通过JavaScript在客户端收到响应之后:

window.location = '/list.htm' 

我建议,然而,有一个单独的终结点删除。使用名为list的端点来删除一个对象是没有意义的;相反,链接应该碰到一个端点,如delete.htm?id = 1234(然后可以发送303重定向回到list.htm)。

0

嗯,我能想到的一个简单的方法是,将删除代码一个单独的页面上,
然后再次将用户重定向到列表页面。 我不太了解Spring MVC,但它看起来像你用PHP来删除它,
判断由?在URL中。 (或许不是它的.htm,但不管) 重定向在PHP将
<?php

header('Location: list.htm') ;

?>

这是假设list.htm是在同一目录下新的删除页面。 所以有一个基本的想法,不管你是否使用PHP都取决于你,我不知道你的代码的其他部分是什么样子,所以我不能帮助更多。

+0

是什么让你认为OP使用PHP? – 2011-05-16 15:51:39

+0

好吧,我只是在继续?在URL中,但正如你所看到的,我改变了主意 – Richard 2011-05-17 09:45:01

0

解决您的问题的模式被称为Post/Redirect/Get。在接收和处理POST(或者如果你愿意的话)之后,你想要发送一个HTTP重定向到客户端,以便他们的浏览器用GET请求加载列表页面。

如果您使用的是标准作为UrlBasedViewResolver,你可以简单地做:

return "redirect:your-list-view"; 

看看春节文档的更多一些信息的部分15.5.3

相关问题