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

在struts2中用jquery.ajax提交表单实例
今天使用了配合struts2使用了jquery.ajax来实现用户登录功能,jquery他封装了ajax使ajax的使用变得更加的容易,我在使用jquery是用的它的json数据格式来接受的数据;这里把代码贴上来供大家看看:
    实现功能:用户输入用户名和密码实现无刷新登录,使用struts2和jquery.ajax,
网页代码:
<form action="" name="logform" id="logform">
          <div class="wline">用户名:<input  type="text" name="logUsername" id="logUsername" value="" style="width:120px;"/></div>
          <div class="wline">密&nbsp;&nbsp;码:<input  type="text" name="userPassword" id="userPassword" value="" style="width:120px;"/></div>
          <div class="wline">验证码:
           <input type="text" id="checkCode" name="checkCode" class="required input" title="请填写验证码"/>
          </div>
         <div class="wline">
               <input  type="button" name="" value="登录" onclick="ajaxlogin();" style="width:50px; height:25px; "/>
               <input  type="button" name="" value="返回" style="width:50px; height:25px; "/>
               <a href="#">注册</a>
              <a href="#">忘记密码?</a>
          </div>
</form>
在这里我只对用户名和密码做了验证;
js代码:
 function ajaxlogin(){
         var params=$('#logform').serialize(); //这里直接就序列化了表单里面的值;很方便
       $.ajax({
               url :'${base}/hzwjj/licharge/login/Com_userLogin.do',  //后台处理程序
               type:'post',    //数据发送方式
               dataType:'json',   //接受数据格式
               data:params,   //要传递的数据;就是上面序列化的值
               success:login_Result //回传函数(这里是函数名) 
        });      
 }
  function login_Result(json){ //回传函数实体,参数为XMLhttpRequest.responseText
       if(json.logeResult){
             alert("this is 1");
        }else{
            alert("this is 2");
         }
  }

?
java代码:
 public String userLogin(){
  LicensingUser user=userMng.findByName(logUsername.trim());
  if(user!=null){
  if(this.logUsername.equals(user.getLogUsername() ) ){
   Md5PwdEncoder m = new Md5PwdEncoder();//Md5验证
   String pass=m.encodePassword(userPassword);
   if(pass.equals(user.getPassword())){
    contextPvd.setSessionAttr("licensingUser",user);
    user.setLogCount(user.getLogCount()+1);
    user.setLogTime(new Date());
    userMng.update(user);
    jsonRoot.put("logeResult",true);
    return "logErro";
   }
  }
  }
  jsonRoot.put("logeResult",false);
  return "logErro";
 }
在action里面需要一个map:
 private Map<String, Object> jsonRoot = new HashMap<String, Object>();
 
 public Map<String, Object> getJsonRoot() {
  return jsonRoot;
 }
 public void setJsonRoot(Map<String, Object> jsonRoot) {
  this.jsonRoot = jsonRoot;
 }
另外特别要注意:
在struts2的配置文件中一定要配置:
<result name="logErro" type="json"> **.jsp </result>
这里一定要把type="json";要不然页面上回传函数那里接受不到数据


?
?

?

1 楼 lc9696lc 2010-12-30  
OK,谢了