javascript代码
function checkRegister(){
var userName = $('#aaa').val();
var url = "XXXXXXX/AjaxCheckRegister";
var jsonObj = {user_name:userName};
var jsonStr = JSON.stringify(jsonObj);
$.post(url,{json:jsonStr},callbackFun,'json');
alert("sssss");
}
function callbackFun(data){
alert(data);
}
function add(){
$('#add_school').wrapInner('<td colspan="4" id="add_school"><input type="input" name="newschool" id="newschool" size="20" /><input type="button" id="ok" name="ok" value="确定" onclick="addSchool()" /><input type="button" id="cancel" name="cancel" value="取消" onclick="cancle()" /></td>');
}
action代码
public String checkRegister() {
try {
JSONObject jsonObj = new JSONObject(json); // 将JSON格式的字符串构造成JSON对象
String user_name = jsonObj.getString("user_name"); // 获取JSON对象中的productId属性的值
System.out.println(user_name);
String isRegistered = "isRegistered:" + this.studentService.checkByname(user_name);
result = "{msg:'" + isRegistered + "'}"; //构造JSON格式的字符串
System.out.println(result);
sendMsg(result);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //发送JSON格式的字符串回JS端
catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return SUCCESS;
}
public void sendMsg(String content) throws IOException{
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
response.getWriter().write(content);
}
struts.xml
<package name="example" namespace="/baoming" extends="struts-default,json-default">
<action name="AjaxCheckRegister" class="XXXXXXX.StudentAction" method="checkRegister">
<result type="json"></result>
</action>
</package>
struts下想验证一下用户名是否注册,现在前台信息可以发送到后台,后台的数据传不回来,大家帮忙看看是哪里的问题!
<result type="json">
<param name="root">result</param><!--假设Action的result属性保存结果-->
</result> 这样试一下呢还有就是用了json-default了,struts-default就可以不用写了,因为json-default已经继承了struts-default了
result type="json" 代表他返回你对象的属性 定义一个成员属性 存放你的json字符串就好了 他的内容会被返回出来的 还有 $.post(url,{json:jsonStr},callbackFun,'json');
是不是因为你没给callbackFun传参?
改为:
$.post(url,{json:jsonStr},callbackFun,'html');
为什么不用他JSON返回类型的配置呢?
真的很方便
这个servlet可以有多个方法,可以给每个ajax请求传个参数,servlet根据参数的不同选择不同的方法去处理异步请求。