Spring MVC:在处理程序方法中打开新浏览器窗口中的链接

时间:2011-03-21 12:17:34

标签: spring-mvc

我有一个控制器可以处理点击链接。在处理程序方法中,我必须做一些事情(在db上)并在新窗口中打开单击的URL(类似于链接中的 _blank 属性)。我使用“redirect:url”,但它在同一个窗口中重定向。有什么想法吗?

@RequestMapping(value = "/open.html")
public String open(@RequestParam(value="id") Integer id) {
    Link link = linkDAO.get(id);
    linkDAO.click(id);
    return "redirect:"+link.getAddress();
}

2 个答案:

答案 0 :(得分:4)

我使用JavaScript和AJAX解决了这个问题 - 正如@Patrick建议的那样。也许对某人有帮助。

<a href="#" onclick="openLink(${link.id},'${link.address}');">Open</a>

openLink功能:

function openLink(id, url) {
    jQuery.get('open.html?id='+id, function(data) { 
      if(data == 'OK') {
        window.open(url);
      } 
    }, 'text');
}

处理程序方法:

@ResponseBody
@RequestMapping(value = "/open.html")
public String open(@RequestParam(value="id") Integer id) {
    Link link = linkDAO.get(id);
    linkDAO.click(id);
    return "OK";
}

答案 1 :(得分:0)

html中只需要进行简单的更改。 在链接

中添加属性target =“_ blank”

访问W3Schools

Visit W3Schools