2011-03-21 4 views
0

링크를 클릭하는 것을 처리하는 컨트롤러가 있습니다. 핸들러 메서드에서 나는 뭔가를 (db) 및 새 창 (링크에서 _blank 특성과 같은) 클릭 한 URL을 열어야한다. 나는 "redirect : url"을 사용하지만 같은 창에서 물론 리다이렉트한다. 어떤 아이디어?스프링 MVC : 핸들러 메소드의 새 브라우저 창에서 링크 열기

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

을 속성 대상 = "_ 빈"을 추가합니다. View/JSP에 해당 JavaScript 코드를 작성해야합니다. –

+0

감사합니다. 나는 무엇이 나에게 왔는지 모른다 ...) 아약스로 말한 것처럼 나는 jQuery.get ('open.html? id ='+ id, function (data) {\t window.open (url); });' – marioosh

답변

4

@Patrick이 제안한대로 JavaScript 및 AJAX를 사용하여이를 해결했습니다. 아마 누군가에게 도움이 될 것입니다.

<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"; 
} 
0

단지 단순한 변화는 HTML 요구된다. 링크에서이 서버가 클라이언트가 어떻게 말할 수있는 것이 아닙니다

방문 W3 스쿨

Visit W3Schools

관련 문제