Action:
@Scope("prototype")
@Namespace("/")
@ParentPackage("json-default")
public class OaAction extends ActionSupport
private String name;
private String pass;
private String msg;
@Action(value="/login",
results={@Result(name="success",location="/main.jsp"),
@Result(name = "login",type="json") })
public String login()
{
Map<String,Object> map = new HashMap<String,Object>();
if(name=="经理1" && pass=="123456")
{
//将数据存储在map里,再转换成json类型数据,也可以自己手动构造json类型数据
map.put("flag","true");
map.put("info","欢迎登陆");
JSONObject json = JSONObject.fromObject(map);//将map对象转换成json类型数据
msg = json.toString();//给msg赋值,传递给页面
return SUCCESS;
}
else
{
map.put("flag","false");
map.put("info","用户名或者密码错误");
//将map对象转换成json类型数据,在此处打断点json有以下两个属性
nullObject : null;
propeties:{flag=false, info=用户名或者密码错误} JSONObject json = JSONObject.fromObject(map);
msg = json.toString();//给msg赋值,传递给页面
return "login";
}
}
@JSON
public String getMsg()
{
return msg;
}
public void setMsg(String msg)
{
this.msg = msg;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public String getPass()
{
return pass;
}
public void setPass(String pass)
{
this.pass = pass;
}
jsp:
<div id="lg">
<input type="text" name="username" id="uname"/>
<input type="password" name="password" id="password"/>
<input type="submit" class="login-sub" value="" id="lgbtn"/> <br />
<div id="msg"></div>
</div>
$(function(){
$('#lgbtn').click(function(){
var name=document.getElementById("uname").value;
var pass=document.getElementById("password").value;
$.ajax
({
url:"login.action",
dataType:"json",
type:"post",
data:"name="+name+"&pass="+pass,
async:false,
success:function(data)
{
//将数据转换成json类型,可以把data用alert()输出出来看看到底是什么样的结构
alert(data);//弹出对话框的内容为:Object object
var d = eval('('+data+')');
alert(""+d.flag+""); //没有弹出对话框
alert(""+d.info+"");
},
error:function()
{
alert("请求失败");
//没有报请求失败
}
});
});
});
jQuery AJAX 请求的 datatype 你已经设为 JSON 了,回调中接收的参数已转化为 JS 对象,无需手动转换~[4](alert 只能显示字符串,把对象传进去会自动调用对象的 toString() 方法,自然显示 [object Object])######谢谢啊!已经修改好了!把JSONObject json这个json传过去就可以了,然后alert(data.flag);就可以了######如果这样改//弹出对话框的内容为:undefined success:function(data) { alert(data.info);//弹出对话框的内容为:undefined,,,怎么改才可以弹出 },######
如果这样改//弹出对话框的内容为:undefined
success:function(data) {
alert(data.info);//弹出对话框的内容为:undefined,,,怎么改才可以弹出内容
},###### 加上这么一句话:
$.ajaxSetup({ dataType: 'json', contentType:'application/x-www-form-urlencoded;charset=UTF-8', cache:false });
######alert(JSON.stringify(data))
######已经是你要的格式了######直接反回map 去掉datetype
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。