我是 AJAX 新手,目前正在学习将它与 Spring MVC 一起使用。我也面临同样的问题。
在着手处理我正在处理的实际实时需求之前,我正在测试整个 AJAX+Spring MVC+jquery 组合,并使用一些非常基本的东西来让我的理解正确。
我在页面上有一个搜索框+“提交”按钮。我在使用 $.get 提交时向 Spring 控制器发送硬编码文本。然后我将该控制器的另一个文本发送回回调函数,并尝试使用“警报”框在回调函数中显示返回的文本。这似乎不起作用。
我看到正在调用回调函数(因为正在触发回调函数中的“警报”)所以我有点假设控制权正在转移到控制器并返回到回调方法,但我无法找出为什么从控制器返回的文本没有显示在回调方法的警报框中。不确定我在这里缺少什么来捕获回调方法中的返回值。
非常感谢您对此的回应和帮助。
谢谢。
文本框和提交按钮的 HTML:
<div class = "searchcontactform">
<form id = "searchcontactform" name="searchcontactform" method="GET">
<input type = 'text' size='25' name = "searchlastname" id = "searchlastname" value='Enter Last Name to Search'/>
<input type = "submit" value="Find">
</form>
</div>
在提交上述表单时触发的 JavaScript:
<script type="text/javascript" src="${pageContext.request.contextPath}/resources/scripts/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function( ) {
$('#searchcontactform').submit(function(){
$.get("ContactList-JPA/search", {textsent : 'Hello Controller'},callback);
function callback(textreceived){
alert('In Callback. Text Received is: '+textreceived);
};
});
});
控制器:
@RequestMapping(value = "/search", method = RequestMethod.GET)
public @ResponseBody String searchcontact(@RequestParam(value="textsent") String textsent){
return textsent;
}
POM.xml 中的 Jackson 依赖项:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.7.1</version>
</dependency>
在 servlet-context.xml 和 root-context.xml 中驱动的注解:
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />