我有一個問題。我使用ajax成功地將JSP中的index
值傳遞給控制器。當我點擊'傳遞'按鈕時,'索引'值正在增加,並通過ajax成功傳遞給控制器。根據這個索引,我將list [index]添加到model中(用model.addAttribute
)雖然我在JSP中使用了${nextWord}
,但在視圖中看不到這個值。我該如何解決它?感謝您的回答。如何在使用ajax後在JSP中顯示模型屬性?
控制器
private List<Map<String, Object>> list;
@RequestMapping(value="/practice/{category}", method = RequestMethod.GET)
public String practicePageStart(@PathVariable("category") String category,
ModelMap model, HttpSession session){
// return 10 value from DB. Example;
// [{idWord=1},{word='exampleWord'},{meaning='turkishMeaning'},{type='NOUN'}]
list = wordService.getRandomWords(Integer.parseInt(String.valueOf(session.getAttribute("wordCount"))));
model.addAttribute("wordList", list);
return "practiceCategory";
}
@RequestMapping(value="/practice/{category}", method = RequestMethod.POST)
public String practicePagePost(@PathVariable("category") String category,
@RequestParam("index") int index, ModelMap model, HttpSession session){
model.addAttribute("nextWord", list.get(index).get("word"));
return "practiceCategory";
}
JSP
<script>
$(document).ready(function() {
$('#pass').click(function(event) {
var inputIndex = $('#index').val();
$.ajax({
type: "POST",
url: "${pageContext.request.contextPath}/practice/${category}",
async: false,
data: { index: inputIndex }
complete: function(){
alert("${nextWord}");
$('#label').text("${nextWord}");
}
});
document.getElementById("index").value = (parseInt(document.getElementById("index").value) + 1).toString();
});
});
</script>
你怎麼在警報得到什麼? – VPK
我什麼都得不到。 –
嘗試從你的控制器返回對象(如'return list.get(index).get(「word」)'),而不是JSP名稱,如果你沒有在其他地方使用它。 – VPK