Во-первых, это мой контроллер:Как вернуть список объектов из контроллера и отобразить их с помощью JQuery (Spring MVC, Ajax)
@Controller
public class MainController {
@Autowired
SqlSession sqlSession;
@Autowired
Message messageVO;
@RequestMapping(value="getMessages", method=RequestMethod.GET)
public @ResponseBody List<Message> getMessages(HttpSession session){
JbuserDAO dao = sqlSession.getMapper(JbuserDAO.class);
List<Message> inboxList = null;
String logedinUserId = (String) session.getAttribute("loginId");
inboxList = dao.getInboxList(logedinUserId);
System.out.println(inboxList); //I do get the list here so it's not sql problem. I think.
return inboxList;
}
и это мой JQuery:
$(function(){
viewingInbox();
$("#viewInbox").on('click', function(){
viewingInbox();
});
});
function viewingInbox(){
$.ajax({
url: "getMessages"
, method: "GET"
, dataType: "JSON"
, contentType: "application/json; charset=UTF-8"
, success: function(obj){
alert(obj.inboxList); //I get undefined here
messageInbox(obj);
}
});
}
function messageInbox(obj){
var list = '<div>';
$(obj.inboxList).each(function(i, item){
list = list + '<article class="media">'
+ '<span class="pull-left"><input type="checkbox" class="checkboxes"></span>'
+ '<span class="pull-left thumb-sm"><img src="resources/images/a2.png" alt="..."></span>'
+ '<div class="media-body">'
+ '<div class="pull-right media-xs text-center text-muted">'
+ '<strong class="h4">12:18</strong><br></div>'
+ '<a href="#" class="h4">123'+item.sendidjbuser+'</a>'
+ '<small class="block m-t-sm">'+item.message+'</small></div></article>'
});
list = list + '</div>';
alert(list); //here I get only <div></div>
$("#inboxDiv").html(list);
alert("messageInbox end");
}
Что Я пытаюсь сделать это, чтобы получить сохраненные сообщения из БД и вернуть их как список сообщений VO, которые я сделал, а затем распечатать их на jsp. Я думал, что это был способ сделать это, но я не думаю, что получаю список от контроллера. Я попытался поставить предупреждение (сообщение) внутри каждого утверждения, и это не сработало; нет предупреждающих сообщений. Это означает, что я не получаю список от контроллера. Я что-то упускаю?
Я добавил json json-databind зависимость, но это все, что у меня есть относительно json.
Я только изучил Strut2 в течение месяца и только недавно начал использовать Spring, поэтому я, должно быть, совершил тупую ошибку, о которой я не знаю. Пожалуйста, скажите мне, что это. Заранее спасибо.
Что такое 'obj'? вы получили правильный объект? от контроллера, я думаю, вам нужно преобразовать его в json или в синтаксический анализ обратного вызова как json – uzaif
Это должен быть возвращенный inboxList с контроллера. Так я и делал на Struts2. Полагаю, весной это не работает. Как я могу сделать этот разбор в успешном обратном вызове или преобразовать его в json в контроллере? – SunSun
Вы попробовали 'console.log (obj)' в успешном обратном вызове – uzaif