[英]return json object list from spring mvc controller
I want to return json object list from spring controller and use it in view but it returns empty list! 我想从spring控制器返回json对象列表并在视图中使用它,但是它返回空列表! I can not understand the problem. 我不明白这个问题。 I create activities objects in minutesController and return it as json.But I can't get it in form using jquery. 我在minutesController中创建活动对象,并将其返回为json。但是我无法使用jquery以表单的形式获取它。 But I can see correct result in browser when I try localhost:8080/FitnessTracker5/activities.json. 但是当我尝试localhost:8080 / FitnessTracker5 / activities.json时,我可以在浏览器中看到正确的结果。 My server is glassfish 我的服务器是玻璃鱼
addMinutes.jsp addMinutes.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<html>
<head>
<title>Add Minutes Page</title>
<script type="text/javascript" src="/WEB-INF/pages/jquery-3.1.0.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
$.getJSON('localhost:8080/FitnessTracker5/activities.json' , {
ajax:'true'
}
,
function(data){
var html = '<option value="">please select one--</option>'
var len = data.length;
for(var i=0 ; i<len ;i++){
html += '<option value="' + data[i].desc + '">'
+data[i].desc+ '</option>' ;
}
html +='</option>';
$('#activities').html(html);
});
});
</script>
</head>
<body>
<h1>Add Minutes Excersisedddd:</h1>
Language:<a href="?language=en">English</a> | <a href="?language=fa">Persian</a>
<form:form commandName="exercise">
<table>
<tr>
<td><h1><spring:message code="goal.text"/> </h1> </td>
<td> <form:input path="minutes"/></td>
<td>
<form:select id="activities" path="activity"></form:select>
</td>
</tr>
</table>
</form:form>
</body>
</html>
activiity.java activiity.java
public class Activity {
private String desc ;
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
MinutesController.java @Controller MinutesController.java @Controller
public class MinutesController {
@RequestMapping(value = "/addMinutes")
public String addMinutes(@ModelAttribute("exercise") Exercise exercise){
System.out.println("exercise" + exercise.getMinutes());
System.out.println("exerciseeeee" + exercise.getActivity());
return "addMinutes" ;
}
@RequestMapping(value = "/activities" , method = RequestMethod.GET)
public @ResponseBody List<Activity> findAllActivities(){
System.out.print("ACCCCCCCCCCCCCCCCCCCCc");
List<Activity> activities = new ArrayList<Activity>();
Activity run = new Activity();
run.setDesc("Run");
activities.add(run) ;
Activity bike = new Activity();
bike .setDesc("Bike");
activities.add(bike) ;
Activity swim = new Activity();
swim.setDesc("Swim");
activities.add(swim) ;
return activities;
}
@RequestMapping(method=RequestMethod.GET, value ="/test")
public @ResponseBody Activity getMovie( ){
Activity activity = new Activity();
activity.setDesc("aaaaa");
return activity;
}
}
From your comment above it appears the problem is that JQuery cannot be loaded, which is probably due to a misconfigured dispatcher servlet. 从上面的评论看来,问题是无法加载JQuery,这可能是由于调度程序servlet配置错误所致。 You might try accessing jquery from the CDN instead: 您可以尝试从CDN访问jquery:
<script type="text/javascript" src="//code.jquery.com/jquery-3.1.0.min.js"></script>
If you want to serve jquery from your application you should google for "serve static resources Spring MVC" :) 如果您想从您的应用程序提供jquery,则应在Google上搜索“为Spring MVC提供静态资源” :)
And add http://
to url
. 并将http://
添加到url
。
$.getJSON('http://localhost:8080/FitnessTracker5/activities.json' , {
使用@RestController
代替@Controller
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.