日期:2014-05-18  浏览次数:20759 次

ssh用ajax传实体类参数不成功
jsp
  <script type="text/javascript">
function valid() {
var url = 'login.action';
var params = {
"user.username":$("#username").val(),
"user.password":$("#password").val()
};
jQuery.ajax({
type: "post",
async: true,
url: url, //服务器要接受的url
data: params, //传递的参数
contentType: "application/json; charset=utf-8",
dataType:"text",
success:function (data){ //服务器返回后执行的函数 参数 data保存的就是服务器发送到客户端的数据
alert(data);
if(data == "error"){
alert("登录shibai");
}}
});
}

   </script>
  </head>

  <body>
      <form name="login" action="login" method="post" >
          <input type="text" name="user.username"  id="username">
          <input type="password" name="user.password"   id="password">
          <input type="button" id="btn_login" onclick="valid()">
      </form>
  </body>


action类
@Results({@Result(name="success",location="/welcome.jsp"),
@Result(name="error",location="login.jsp")})
public class loginAction extends ActionSupport{
private User user;
private userService userService;
public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

public userService getUserService() {
return userService;
}

public void setUserService(userService userService) {
this.userService = userService;
}




@Action("login")
public String execute() throws Exception {
// TODO Auto-generated method stub
User u = new User();
HttpServletRequest request = ServletActionContext.getRequest();
String n = request.getParameter("user.username");
String p = request.getParameter("user.password");
boolean b = this.userService.loginValid(user);
if(b){
Map session = ActionContext.getContext().getSession();
session.put("user", user.getUsername());
return SUCCESS;
}
else{
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter out = response.getWriter();
out.print("error");
return null;
}
}

}


为什么每次都取不到user.username和user.password呢?
望大神指点