求救呀?jquery的$.post方法无法就收服务器返回的值,struts2 整合

浪里花 2012-11-04 01:18:32
问题是这样的,从jsp页面表单提交后,通过服务器验证,并返回json格式的数据,但是在jsp页面无法接收到返回的json数据,而服务器返回的json数据直接就显示出来了
action代码如下:
private String name;
private String pass;
private int age;
//setter/getter...

@Override
public String execute() throws Exception {
System.out.println(this.age+":"+this.name);
return SUCCESS;

}

jsp页面代码如下
<script type="text/javascript" src="jquery/jquery.js"></script>
<script type="text/javascript">
$(function() {
$("#btn").click(function() {
var params = {
"name":$("input[name='name']").val(),
"pass":$("input[name='pass']").val(),
"age":$("input[name='age']").val()
}

$.getJSON("hello.action",params,function(data,status){

alert(data)
},"json");
});
})


</script>
</head>

<body>
<form action="hello" method="post" id="f">
<input type="text" name="name"><br>
<input type="password" name="pass"><br>
<input type="text" name="age"><br>
<input type="submit" value="login" id="btn">
</form>
</body>

struts.xml代码如下:
 <package name="default" namespace="/" extends="json-default">
<action name="hello" class="com.ly.action.Login">
<result type="json"></result>
</action>

</package>

我本意是服务器返回的数据可以alert一下,但是没反应,数据直接就在页面打印了。而jsp中的$.getJSON("hello.action",params,function(data,status){

alert(data)
},"json");
没起作用
这是实验效果,输入框

控制台打印的数据是 11:ffff

输入后就是这个样子了

我本意是把{"age":11,"name":"ffff","pass":"hhh"}这个alert一下,但是不行,求解这是怎么回事
页面在firefox上一点错都没
...全文
195 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
浪里花 2012-11-05
  • 打赏
  • 举报
回复
引用 2 楼 xodbc 的回复:
很明显你问错区了。这属于web开发/javascript或ajax的范畴 不过我可以明确地告诉你,你这click执行后还没获取到返回信息时submit事件执行了,于是网页刷新为你的返回结果。
懂了,谢谢了,的确click后表单还是提交了,相当于没用到ajax,如果将submit改成button进行了,谢谢了
浪里花 2012-11-05
  • 打赏
  • 举报
回复
引用 2 楼 xodbc 的回复:
很明显你问错区了。这属于web开发/javascript或ajax的范畴 不过我可以明确地告诉你,你这click执行后还没获取到返回信息时submit事件执行了,于是网页刷新为你的返回结果。
不懂,难道把submit改成button,你说的这个问题怎么改,谢了
浪里花 2012-11-05
  • 打赏
  • 举报
回复
引用 3 楼 a454344407 的回复:
System.out.println(this.age+":"+this.name);是打印到控制台,返回json 要out.print("")..
不是的我在function里面alert这句没有执行
Geek41 2012-11-05
  • 打赏
  • 举报
回复
System.out.println(this.age+":"+this.name);是打印到控制台,返回json 要out.print("")..
为啥呢 2012-11-05
  • 打赏
  • 举报
回复
很明显你问错区了。这属于web开发/javascript或ajax的范畴 不过我可以明确地告诉你,你这click执行后还没获取到返回信息时submit事件执行了,于是网页刷新为你的返回结果。
浪里花 2012-11-05
  • 打赏
  • 举报
回复
怎么没有人来回答

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧