Struts、jQuery和Ajax提交数据的一个小疑点
新手实验jQuery+JSON实现Ajax时遇到的问题,求诸位前辈指点迷津!
网页代码:
<body>
<div id="demo">
wow! jQuery.<br/>
</div>
用户名:<input type="text" id="userName"/><br/>
密码:<input type="password" id="passWord"/><br/>
<input type="button" value="ajax" id="btn"/>
</body>
javascript代码:
$(document).ready(function(){
$("#btn").bind("click",function(){
var params={"user.userName":$("#userName").val(),"user.passWord":$("#passWord").val()};
$.ajax({
url:"../action/ajax",
data:params,
type:"post",
dataType:"json",
success:function(data){
//alert(data.toJSONString());
if(data.user!=null){
alert("登录成功!");
}else{
alert("登录失败!");
}
}
})
})
});
struts.xml配置:
<package name="ajax" namespace="/action" extends="json-default">
<action name="ajax" class="com.action.AjaxAction">
<result name="ajax" type="json">
<param name="includeProperties">
user.*
</param>
</result>
</action>
</package>
Action内容:
public class AjaxAction extends ActionSupport {
private User user; //User对象就俩属性:userName和passWord,都是String类型
private String toJSONString; //请注意这个属性,我的问题就是关于它的
public String execute(){
System.out.println(this.toJSONString); //请注意这一句,呆会我会粘出他的显示结果
if(!user.getUserName().equals("admin") || !user.getPassWord().equals("admin")){
user=null;
}
return "ajax";
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String getToJSONString() {
return toJSONString;
}
public void setToJSONString(String toJSONString) {
this.toJSONString = toJSONString;
}
}
现在开始说问题,我要实现的功能就是在页面输入用户名密码,按按钮之后,通过jQuery得到用户名、密码,然后通过Ajax发送到Action里,判断用户名、密码是否正确,然后返回User对象。这个功能我确实已经实现了。但是有个小问题,请注意我Action里的那个toJSONString属性,一开始我代码里没有他,但是如果没有他的话,执行程序的时候,虽然也能实现我的功能,但是后台总抛异常,提示我说没有这个toJSONString的set方法。不得已我只能创建一个toJSONString属性,并写出他的get、set方法。出于好奇,我在控制台打印了一下这个toJSONString属性的内容,打印结果如下: