我有一个多动作控制器来处理所有相关请求。我创建了一个处理 ajax 请求的方法,并且该方法预计将返回一个字符串值作为响应。这个 Spring 应用程序不是“mvc:annotation-driven”。
具有处理 ajax 调用方法的控制器:
public class UserController extends MultiActionController {
private UserDelegate userDelegate;
public void setUserDelegate(UserDelegate userDelegate) {
this.userDelegate = userDelegate;
}
public String AjaxExample(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
String ip = request.getParameter("ip"));
String sysName = userDelegate.getSysName(ip);
return sysName;
}
//Several methods to handle other requests ...
}
使用 jquery 我能够成功调用上面的“AjaxExample”方法。jquery函数如下图所示:
function callAjax() {
var ip = $('#ip').val();
$.ajax(
{
type: "POST",
url: "AjaxExample.do",
data: "ip=" + ip,
success: function(response) {
alert(response);
},
error: function(e) {
alert('Error: ' + e);
}
}
);
}
我面临的问题是如何在不使用 @ResponseBody 注释的情况下返回字符串?
我可以只在这一种方法上使用注释吗?老实说,我实际上是通过<mvc:annotation-driven/>
在我的应用程序配置文件中设置标签并使用@ResponseBody 注释“AjaxExample”方法来尝试的。那没有用,spring 仍然将字符串识别为未解决的视图。
我从来没有使用注释配置过spring,我对此的理解是有限的。@ResponseBody 注释不起作用是因为我没有用@Controller 注释我的控制器并且因为我没有用@Request 注释方法吗?但是我在我的应用程序配置文件中确实有一个 bean 定义,并且控制器中的其他方法工作正常。
请忍受我的无知,并启发我如何让这个方法将字符串返回给我的 ajax 调用?