问题是这样的,从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上一点错都没
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上一点错都没
不过我可以明确地告诉你,你这click执行后还没获取到返回信息时submit事件执行了,于是网页刷新为你的返回结果。
不是的我在function里面alert这句没有执行
懂了,谢谢了,的确click后表单还是提交了,相当于没用到ajax,如果将submit改成button进行了,谢谢了