懿之星落45℃ 2011-10-31 11:02 采纳率: 0%
浏览 236
已采纳

struts2返回json格式数据,看看我的问题!!谢谢

已经确定service层无错!
action里这么写的:
[code="java"]public void checkUserExist() throws Exception{
String param = request.getParameter("param");
// System.out.println("传入的参数值为:"+param);
users = new Users();
users.setLoginName(param);
//查询该用户名
int c = userService.checkUserHasExist(users);
System.out.println(c);
if(c!=0){
String info = "该用户名已存在,请重新输入!";
String status = "n";
JSONArray jsonObj = JSONArray.fromObject("[{info:"+info+",status:"+status+"}]");
writeJson(jsonObj.toString());
}else{
JSONArray jsonObj = JSONArray.fromObject("[{info:'该用户名可以使用!',status:'y'}]");
writeJson(jsonObj.toString());
}
}[/code]

到页面的时候,直接显示出[quote][{info:'该用户名可以使用!',status:'y'}][/quote]
请问我应该怎么让他只显示,“该用户名可以使用”。
其中的y和n表示数据提交是否正确!n表示提交错误,按说y应该提交正确了,但是还是红色字显示,意思是还是错误,虽然已经判断了是否存在用户名。
我的jquery这么写的:
[code="java"]if($(this).attr("ajaxurl")){
var inputobj=$(this);
inputobj.attr("valid",tipmsg.c);
$.fn.Validform.sn.showmsg(tipmsg.c,settings.tiptype,{obj:inputobj,type:1,sweep:settings.tipSweep},"hide");
$.ajax({
type: "POST",
url: inputobj.attr("ajaxurl"),
data: "param="+$(this).val()+"&name="+$(this).attr("name"),
dataType: "text",
success: function(s){
if(s=="y"){
inputobj.attr("valid","true");
errorobj=null;
$.fn.Validform.sn.showmsg(tipmsg.r,settings.tiptype,{obj:inputobj,type:2,sweep:settings.tipSweep},"hide");
}else{
inputobj.attr("valid",s);
errorobj=inputobj;
$.fn.Validform.sn.showmsg(s,settings.tiptype,{obj:inputobj,sweep:settings.tipSweep});
}
},[/code]

JSP页面如下:
[code="java"]



帐号:


ajaxurl="login/checkUserExist.action" nullmsg="请输入用户名!" errormsg="帐号至少6个字符,最多18个字符,只能是数字字母下划线!" />

帐号至少6个字符,最多18个字符

[/code]

ajaxurl就是要检查的action。
//表单数据是以POST方式提交过来;

//注意json数据必须严格按如下格式输出:{"info":"demo info","status":"y"};
//info: 输出提示信息;
//status: 返回提交数据的状态,是否提交成功。“y”表示提交成功,“n”表示提交失败,在callback函数里可以根据该值执行相应的回调操作;
echo '{
    "info":"数据已成功提交!",
    "status":"y"
}';

这是网上的那个方法,一行代码搞定全站的那个jquery,我现在要用来检查用户名是否存在!!唉
搞了一个周末了!!!求高人

  • 写回答

1条回答 默认 最新

  • aini3456 2011-10-31 12:25
    关注

    在success回调函数中用var data = eval(s);
    data就是你的json对象了,可以直接用data.info

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波