Action:
public class RegistAction extends ActionSupport{
private String username;
private String flag;
private OperatorService operatorService;
/**
* @category校验用户是否存在
* @return
*/
public String userExists()
{
flag = "false";
return SUCCESS;
}
}
JavaScript
function val_Username(username) { $.ajax({ type:"post", url:"Regist_userExists", data:"username="+username, cache:false, success:function(r){ var q = r.flag; alert(q); } }); }
运行的时候经过了后台的类处理,也返回了success,但是就是不执行回调函数。通过打印responseText,获知cannot access member of class,得知不能将类的局部变量串行成json对象,因为在本例中OperatorService是接口,因此在实例化接口的时候报了错。
解决方案有两种。
1.在OperatorService 的get方法上加上@JSON(serialize=false),禁止该成员变量串行后,函数得以成功回调。
2.Struts能自动注入OperatorService,直接去除getOperatorService即可