这是我的ajax
$(function() {
var power;
var html = "";
$.ajax({
url : "../loginAction",
type : "post",
dataType : "text",
success : function(data) {
alert("我是王晓思"+data);
if (data != 1) {
html += "<li><a href='../admin/userManage.jsp' target='frmright'><span>用户管理</span></a></li>"
+"<li><a href='../admin/powerManage.jsp' target='frmright'><span>权限管理</span></a></li>"
+"<li><a href='../admin/roleManage.jsp' target='frmright'><span>角色管理</span></a></li>"
+"<li><a href='../admin/modifyPassword.jsp' target='frmright'><span>修改密码</span></a></li>"
+"<li><a href='../admin/search.jsp' target='frmright'><span>统计查询</span></a></li>";
}
else if(data == 2){
alert('函数执行2');
}
else if(data == 3){
}
else if(data == 4){
}
$("#category").html(html);
}
});
});
这是我的action
HttpServletResponse response = (HttpServletResponse)
ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE);
PrintWriter out = response.getWriter();
/*Map map = new HashMap();
map.put("power", "1");
JSONObject data =JSONObject.fromObject(map);*/
String data = "1";
out.println(data);
return "true";
然后我接受的数据不是 1 ,而是ajax所在的html页面,难受
如果你return data返回的就是1了,return “true” 应该是true.jsp
HttpServletResponse response = (HttpServletResponse)
ActionContext.getContext().get(org.apache.struts2.StrutsStatics.HTTP_RESPONSE);
PrintWriter out = response.getWriter();
/*Map map = new HashMap();
map.put("power", "1");
JSONObject data =JSONObject.fromObject(map);*/
String data = "1";
out.println(data);
return "true";
补充了一下action的代码格式,之前第一次上传代码,出了点儿问题
你不是return true了吗,那个data 返回就是true啊,你这个显示的应该是$("#category").html(html);
action 设置拦截的全局。然后在xmlhttprequest 对象中插入js
设置一下返回类型,既然是ajax请求,就不要有返回值了,直接out.print(value)就可以了,再就是看看返回的头设置为json,或者你要的类型,
或者可以直接在类上用注解@ResposeBody
用ajax 后台action 就out.println(data);就可以了,并不用return 了,return 是返回一个页面
谢谢大佬们,问题解决了。我把这段代码单独拿出来放进一个函数就解决了
把printwrite 给close()了 就行了