我有一个控制器可以处理点击链接。在处理程序方法中,我必须做一些事情(在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();
}
答案 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)