每当用户尝试从当前页面导航而不在当前页面上保存数据时,我都会显示一个警告对话框。它的工作正常现在我想在用户点击Ok
(在警告对话框中)时调用一个函数(Spring控制器,它的java函数来处理URL映射),然后他应该重定向到所需的页面。登记/>
让我试着让它变得简单(它也让我感到困惑)
1)用户在注册页面上,他/她做了一些更改,但没有保存
2)现在用户点击了任何其他链接,例如他点击了About Us
链接
3)现在我想执行我的弹簧控制器
4)执行控制器后,用户应导航到About Us
页面
为此我需要保存点击超链接的值并将其传递给我的弹簧控制器
那么如何存储点击链接的URL(上例中的About Us
页面的URL)?
PS:如果有人能够编辑我的问题以便更容易理解,我将非常感激。
答案 0 :(得分:1)
页面上的所有链接都指向您的spring应用程序吗?如果在任何地方都没有外部链接(指向外部资源) - 那么您可以编写一个简单的Filter,您可以将所请求的页面保存到会话中。
否则,如果存在指向外部资源的链接,则需要将其从www.external.com
重写为www.my.com\MagicController?requestedPage=www.external.com
。 Controller将保存链接并将HTTP标头中的重定向发送到请求的页面。这是一种常见的做法 - 即使谷歌这样做(查看谷歌搜索结果链接,看看它是什么样的。)
已添加:很奇怪,但谷歌仅在极少数情况下这样做,所以你可能无法在那里找到一个例子。
答案 1 :(得分:1)
如果你使用jQuery,你可以附加一个事件处理程序来onclick到页面中的所有链接,一旦点击,处理程序应该将href属性保存到某个变量。然后在窗口上创建一个onbeforeunload事件监听器,您可以在其中使用所需的值,调用控制器或将值保存在cookie或其他内容中。
答案 2 :(得分:0)
不要求保留所选标签的href。一件事用每个标签附加相同的javascript函数并传递“this”作为函数的参数。
javascript的功能是
function Attach(ele)
{
// 1. Find the handle of selected tag and store in the variable.
ele=$(ele);
// 2. Find the value of href
var href=ele.attr("href");
// 3. Perform server side operation you want.
// 4. redirect to another page.
window.location=href;
return false;
}