2013-07-11 2 views
0

Song 객체 목록을보기로 전달하는 컨트롤러가 있습니다.Spring MVC : 주어진 컨트롤러에서 객체 간 전달

예 :

이 목록은 URL에있는 개체의 ID 속성을 URL 목록으로 출력된다 문제는 ...song/23 URL을 생성하는 책임이 노래 컨트롤러에 대한 올바른 노래 객체를 전달하는 올바른 방법이 될 것 인 것이다

:

<a href="song/${song.id}"> 

<c:out value="${song.songName}"/> 

</a> 

더 자세한 사항 :

http: //.../song/23는에 의해 얻어진다 ?

예 : 4 곡 개체를 반복하면 4 개의 링크가있는보기가 생성됩니다.

링크 1 Link2부터 LINK3 Link4

각각의 링크는 노래 객체에 해당하는 각각의 링크를 클릭하면 고유 URL에 전달한다. 예 : song1의 ID가 42이면 Link1을 클릭하여 http : //../song/42로 전달하고 Link1에 해당하는 노래 객체를 노래 컨트롤러로 전달해야합니다.

@RequestMapping(value="/song/{songId}/", method=RequestMethod.GET) 
public String showSong(@PathVariable int songId) { 
    // Do something 
} 

는 이제 ID로 노래 객체를 검색 할 수 있습니다 (I이 서비스를한다고 가정

답변

0

은 내가 당신의 질문은 충분히 이해하지만, 스프링 MVC (주석 기반),이 같은 작업을 수행 할 수 있습니다에 희망을 그런 특징이 있습니다) 그리고 당신은 당신의 노래 객체를 가지고 있습니다.

+0

이것이 정답인지 확신하지 못합니다. 내 질문에 자세한 내용을 추가하겠습니다. – edst

+0

그러면 정확히 무엇을 원하니? 내 코드는 ID (23)를 가져 와서 '노래/23'URL에서 노래 개체를 검색 한 다음 해당 ID로 노래 개체를 검색 할 수있는 방법을 보여줍니다. – g00glen00b

+0

첫 번째 컨트롤러에만 노래 개체가있는 경우 어떻게 검색합니까? – edst

0

노래를 선택하고 자바 스크립트 기능에서 컨트롤러로 보낼 때 양식에 숨겨진 변수를 채워 데이터로 채울 수 있습니다.

HTML :

<form method="POST" id="formId" action=""> 

    <input type="hidden" name="selectedSongId" value=""/> 
    <input type="hidden" name="selectedSongName" value=""/> 
    <input type="hidden" name="selectedSongArtist" value=""/> 

    <c:forEach ...> 
     <a href="submitForm(${song.id}, ${song.songName}, 
          ${song.selectedSongArtist})"> 
      <c:out value="${song.songName}"/> 
     </a> 
    </c:forEach> 
</form> 

자바 스크립트 :

submitForm = function(songId, songName, songArtist){ 
    form = document.getElementById('formId'); 
    form.selectedSongId = songId; 
    form.selectedSongName = songName; 
    form.selectedSongArtist = songArtist; 

    form.action="songs/"+songId+"/doSomething"; 
    form.submit(); 
} 

컨트롤러 :이 할 것

@RequestMapping("songs/{songId}/doSomething") 
public String handleSubmit (@PathVariable String songId, 
        @RequestParam("selectedSongName") String songName, 
        @RequestParam("selectedSongArtist") String songArtist) { 

    // do Something 
} 

.

그러나 JSON 객체의 데이터를 채우고 @ModelAttribute 주석이 붙은 Controller 핸들러 메소드로 보낼 수도 있습니다. Google, 관심이 있다면.

관련 문제