zoukankan      html  css  js  c++  java
  • jquery发送ajax请求,以及struts2的action响应请求并传回json数据的做法

    -------------------jquery代码------------------

    function login() {
        var rem = $('#remember').val();
        $.ajax({
            type : 'post',  //请求的方式
            url : loginURL,  //地址
            datatype : "json", //参数的类型  
            data : {      //参数
                'checkCode' : yzm,
                'username' : username,
                'password' : hex_md5($("#password").val()),
                'remember' : rem
            },
            timeout: 5000,
            error: function (xmlHttpRequest, error) {  //方法发生错误执行的方法
                ui.error("登陆失败!");
                return;
            },
            success : function(data) {          //方法执行成功之后执行的方法
              
                if (data.success) {//data.success是后台定义的一个boolean类型的数据
            //if...else根据个人的需求来写              
                    if((!data.jsonMap.checkedUserFlag) && data.jsonMap.pwdFlag && !data.jsonMap.firstLoginFlag){
                        window.location = changeURL;
                    } else if(data.jsonMap.checkedUserFlag && !data.jsonMap.firstLoginFlag){
                        window.location = changeURL;
                    } else {
                        window.location = loginSuccessURL;
                    }
                } else {
                    ui.error(data.msg);
                    randomYzm();
                    $("#verification_code").val("");
                }
            }
        });
    }
    --------------------------------action中的回传参数----------------------------------

    package com.login.action;

    import javax.servlet.http.HttpSession;

    import org.apache.struts2.ServletActionContext;

    import com.login.pojo.Customer;
    import com.login.service.LoginService;
    import com.opensymphony.xwork2.ActionSupport;
    import com.util.classes.JSONBean;

    public class loginAction extends ActionSupport {

        // 客户管理服务
        private LoginService loginService;

        public static final String TILES = "tiles";
        protected String targetUrl; // 跳转的页面

        // 用户名
        private String username;
        // 密码,旧密码
        private String password;
        // 验证码
        private String checkCode;
        // 记住用户名
        private String remember;

        private JSONBean root = new JSONBean(); //定义要回传的json对象,注意一定要有get,set方法
        
        public JSONBean getRoot() {
            return root;
        }
        public void setRoot(JSONBean root) {
            this.root = root;
        }
        
        public String getUsername() {
            return username;
        }

        public void setUsername(String username) {
            this.username = username;
        }

        public String getPassword() {
            return password;
        }

        public void setPassword(String password) {
            this.password = password;
        }

        public String getCheckCode() {
            return checkCode;
        }

        public void setCheckCode(String checkCode) {
            this.checkCode = checkCode;
        }

        public String getRemember() {
            return remember;
        }

        public void setRemember(String remember) {
            this.remember = remember;
        }

        public String validateUser(){
            HttpSession session = ServletActionContext.getRequest().getSession();
            String v_code = session.getAttribute("vcode").toString();
            String msg ="";
            Customer dbCustomer = null;
            if(!checkCode.equals(v_code)){
                msg="验证码错误";
                root.setSuccess(false);
                root.setMsg(msg);
            }else{
                msg="登录成功";
                dbCustomer=loginService.checkCustomerByLoginId(username);
                
                if(dbCustomer!=null){
                    root.setSuccess(true);
                    root.setMsg(msg);
                }else{
                    dbCustomer = loginService.checkCustomerByUsername(username);
                    msg="登录成功";
                    if(dbCustomer!=null){
                        root.setSuccess(true);
                        root.setMsg(msg);
                    }else{
                        root.setMsg("用户在系统中不存在!");
                    }                
                }
                
            }        
            return "json";
        }
    }
    jsonBean 类 中定义了 一些变量 如success,msg,jsonMap  也可以直接在action中定义

    ------------------------------struts.xml-------------------------------

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
        
        <struts>
            <package name="default" extends="struts-default,tiles-default,json-default"> <!--定义的包继承json-default-->
                    <action name="*" class="loginAction" method="{1}">
                         <result name="success">page/jsp/login.jsp</result>
                         <result  name="tiles" type="tiles" >${targetUrl}</result>
                         <result name="json" type="json">    
                               <param name="root">root</param>
                            </result>
                    </action>
            </package>
        </struts>

    --------------------------------对了最后记得项目中一定要有json的jar struts2-json-plugin-2.3.4.jar 版本尽量跟struts2的核心包的版本一致---------------------

        

  • 相关阅读:
    基于Python的接口测试框架
    接口自动化之Postman+Newman
    UIAutomator定位Android控件的方法
    HTTP接口功能自动化测试入门
    前端基础:HTML标签(上)
    Python 面向对象进阶
    Python 断言和异常
    Linux 文件上传Linux服务器
    Python 运算符
    Python 基本数据类型
  • 原文地址:https://www.cnblogs.com/javawebstudy/p/2936342.html
Copyright © 2011-2022 走看看