當您選擇歌曲並從javascript函數發送給控制器時,您可以在表單中隱藏一些變量以填充數據。
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>
的Javascript:
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處理程序方法。谷歌,如果你有興趣。
不知道這是否是正確的答案。我會在我的問題中添加更多細節。 – edst
你到底想要什麼?我的代碼顯示瞭如何通過獲取ID(23)從「song/23」URL中檢索歌曲對象,然後可以通過該ID查找歌曲對象。 – g00glen00b
當我只在第一個控制器中存在時,我將如何查找歌曲對象? – edst