jquery / ajax的Noob在这里,所以请耐心等待我! :) 我一直在寻找网络,但没有一个答案符合我的需求,所以这是我的问题:
我尝试编写代码,现在我需要一个jquery函数:
单击按钮后,jquery函数调用指定的控制器方法
Controller方法从数据库中获取对象数组
Controller方法将对象数组作为json发送给jsp,
对象数组由相同的jquery函数处理,并在我的jsp上执行某些操作(例如追加某些div的内容)。
现在这是我的代码:
build.gradle依赖项:
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.boot:spring-boot-starter-tomcat')
compile('org.apache.tomcat.embed:tomcat-embed-jasper')
compile('javax.servlet:jstl')
compile group: 'javax.servlet', name: 'jstl', version: '1.2'
compile group: 'postgresql', name: 'postgresql', version: '9.0-801.jdbc4'
compile group: 'org.webjars', name: 'jquery', version: '2.2.4'
compile group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1'
compile group: 'org.webjars', name: 'jquery', version: '2.2.4'
compile("org.springframework.boot:spring-boot-devtools")
compile group: 'org.json', name: 'json', version: '20090211'
compile group: 'com.google.code.gson', name: 'gson', version: '2.3.1'
compile 'javax.validation:validation-api:1.1.0.Final'
compile 'org.hibernate:hibernate-validator:5.0.1.Final'
runtime('com.h2database:h2')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile group: 'com.h2database', name: 'h2', version: '1.3.148'
}
我的jquery脚本:
<script>
$(document).ready(function() {
$("#testButton4").click(function(event){
$.ajax({
type : 'GET',
url : '${pageContext.request.contextPath}/fetchComments',
success : function(response) {
$('#result').html(response.get(1).author);
},
error: function() {
alert("God dammit...");
}
});
});
});
</script>
...
<button id="testButton4"> Button4</button>
<div id="result"> Here content should be changed by button click. </div>
...
和我的控制器代码:
@RequestMapping(value="/fetchComments", method=RequestMethod.GET,produces="application/json")
@ResponseBody
public List<Comment> fetchComments() {
System.out.println("");
System.out.println("Fetching comments from database");
List<Comment> commentList = (List<Comment>) commentRepository.findAllByOrderByIdAsc();
for(Comment comment : commentList){
System.out.println(comment.getId() + ", " + comment.getContent() + ", " + comment.getAuthor()+", "+comment.getPostId());
}
return commentList;
}
目前我的jquery函数(成功/错误)都没有工作(我可以在开发工具中看到json数据,但是从jquery的角度来看,没有任何事情发生)。我做错了什么?
答案 0 :(得分:0)
Response对象没有get
方法,您要查找的数据可能位于Response
对象的主体内。
答案 1 :(得分:0)
根据提示,Mitul Maheshwari给了我,我展示了来自控制器的东西。我有对象。所以我所要做的只是var list = JSON.stringify(response);
,现在我可以用json数据调用list
变量做我想做的所有事情。谢谢!