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

mar*_*osh 1 spring-mvc

我有一个处理点击链接的控制器。在处理程序方法中,我必须做一些事情(在 db 上)并在新窗口中打开点击的 url(类似于链接中的_blank属性)。我使用“重定向: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();
}
Run Code Online (Sandbox Code Playgroud)

mar*_*osh 6

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

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

openLink 功能:

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

处理方法:

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