gpt4 book ai didi

javascript - 如何从 Controller 返回对象列表并使用 JQuery(Spring MVC、ajax)显示它们

转载 作者:行者123 更新时间:2023-12-01 05:32:20 25 4
gpt4 key购买 nike

首先,这是我的 Controller :

@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上打印出来。我认为这是这样做的方法,但我认为我没有从 Controller 获取列表。我尝试将警报(消息)放入每个语句中,但它不起作用;没有警报消息。这意味着我没有从 Controller 获取列表。我错过了什么吗?

我添加了 json-databind 依赖项,但这就​​是我关于 json 的所有内容。

我只学习了 Strut2 一个月,最近才开始使用 Spring,所以我一定犯了我不知道的愚蠢错误。请告诉我那是什么。提前致谢。

最佳答案

您可以使用 ResponseEntity 作为返回元素,也可以将列表转换为 json 列表,以便 jquery 可以将其解释为迭代元素。

    @RequestMapping(value="getMessages", method=RequestMethod.GET)
public ResponseEntity<String> getMessages(HttpSession session){
JbuserDAO dao = sqlSession.getMapper(JbuserDAO.class);
List<Message> inboxList = null;
String logedinUserId = (String) session.getAttribute("loginId");
inboxList = dao.getInboxList(logedinUserId);


com.google.gson.Gson gson = new GsonBuilder().disableHtmlEscaping().create();
String jsonString = gson.toJson(inboxList);
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.add("Content-Type", "text/html; charset=utf-8");
return new ResponseEntity<String>(jsonString, responseHeaders, HttpStatus.CREATED);


}

这样您一定会得到您想要的消息列表。 P.S:我还没有仔细阅读你的其余代码。但像下面这样的事情应该有效:

success: function(obj){

$.each(obj, function(index) {
alert(obj[index].sendidjbuser);
alert(obj[index].message);
});


}

关于javascript - 如何从 Controller 返回对象列表并使用 JQuery(Spring MVC、ajax)显示它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36590033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com