zoukankan      html  css  js  c++  java
  • 后端ajax异步请求的使用

    封装——是衡量是否简洁的重要标准

    最近做一个白名单,给用户依据商户号添加使用。但是在添加之前要去判断是不是已经存在,如果存在的话,就要给前台返回信息,如果不存在就要有提示。

    jsp整体使用from提交,关于是否存在的提示则使用ajax异步提交。

    首先,给相关的字段添加一个onblur事件:

    1 <td nowrap="nowrap">
    2         <span><input id="enterCode" name="enterCode" class="form-control" type="text" onblur="chechEnterCode()"/></span>
    3         <font id="enterCodeMsg"></font>
    4 </td>

    对应的js代码如下:

    function chechEnterCode(){
        var enterCode = $("#enterCode").val();
        $.ajax({
            url : "paymentsetting.do?method=checkEnterCode",
            dataType : "json",
            type : "post",
            data : {"enterCode" : enterCode},
            success : function(json){
                if("false" == json.ret){
                    $("#enterCodeMsg").html("该商户不存在!");
                    $("#enterName").val("");
                    $("#orgNo").val("");
                    $("#orgNm").val("");
                }
                else if("true" == json.ret){
                    $("#enterCodeMsg").html("");
                    $("#enterName").val(json.ENTER_NAME);
                    $("#orgNo").val(json.ORG_NO);
                    $("#orgNm").val(json.ORG_NM);
                }
            }
        })
    }

    在controller层代码如下:

     1 /**
     2      * 
     3     * 【根据商户号反馈商户名、所属机构信息】
     4     * @param request
     5     * @param response
     6     * @param enterCode
     7      */
     8     @RequestMapping(params = "method=checkEnterCode")
     9     public void checkEnterCode(HttpServletRequest request,HttpServletResponse response, String enterCode){
    10         try {
    11             Map map = (Map) paymentSettingServer.findEnterByEnterCode(enterCode);
    12             if(null == map){
    13                 map = new HashMap<>();
    14                 map.put("ret", false);
    15             }
    16             else{
    17                 map.put("ret", true);
    18             }
    19             String json = JsonUtil.map2json(map);
    20             responseMessage(response,json);---------------------------》转注
    21         } catch (Exception e) {
    22             e.printStackTrace();
    23         }
    24     }

    注:此处将所有的往前端写值的方法封装在一个类中:

    1 protected void responseMessage(HttpServletResponse response, String message)
    2             throws IOException {
    3         LogUtil.MSG.debug(message);
    4         response.setContentType("text/html;charset=UTF-8");
    5         PrintWriter out = response.getWriter();
    6         out.write(message);
    7     }

    controller层调用接口(server)如下:

    1 /**
    2      * 
    3     * 【根据商户号获取商户信息】
    4     * @param enterCode
    5     * @return
    6      */
    7     public Object findEnterByEnterCode(String enterCode);

    接口的实现如下:

     1 @Override
     2     public Object findEnterByEnterCode(String enterCode) {
     3         try {
     4             return paymentsettingServiceImpl.findEnterByEnterCode(enterCode);
     5         } catch(BizException ex) {
     6             LogUtil.MSG.error(ex.getMessage());
     7             throw ex;
     8         } catch(Exception ex) {
     9             LogUtil.ERROR.error(ex,ex);
    10             throw new BizException(ex.getMessage());
    11         }
    12     }

    服务层的代码如下:

    1 public Object findEnterByEnterCode(String enterCode) {
    2         try {
    3             return paymentsettingDaoImpl.findEnterByEnterCode(enterCode);
    4         } catch (Exception e) {
    5             LogUtil.ERROR.error("校验商户号发生异常:" + e.getMessage());
    6             throw new BizException("校验商户号发生异常", e);
    7         }
    8         
    9     }

    dao层代码如下(此处使用的是hibernate框架):

     1 public Object findEnterByEnterCode(String enterCode) {
     2         QueryHelper helper = new QueryHelper();
     3         helper.append("select ep.ENTER_CODE,ep.ENTER_NAME,cm.ORG_NO,cm.ORG_NM ");
     4         helper.append(" from T_ENTERPRISE ep "
     5                 + " left join CMMTINORG cm  on ep.ORGANIZATION = cm.ORG_NO ");
     6         helper.append(" where ep.ENTER_CODE = ?",enterCode);
     7         List list = super.getListBySql(helper, Transformers.ALIAS_TO_ENTITY_MAP);
     8         if(list.size() == 1){
     9             return list.get(0);
    10         }
    11         else{
    12             return null;
    13         }
    14     }

    不存在的情形(直接去数据库查询然后给出提示):

    存在的情形(查询出对应的数据并且填充):

  • 相关阅读:
    metasploitable实践
    免杀技术
    SQL注入
    ARP欺骗
    使用Nmap攻击靶机和使用Wireshark进行嗅探、分析
    Nmap
    搭建网络攻防环境
    20139216网络攻防技术第七次作业
    Android代码实现求和运算
    命令行输入参数,并实现排序
  • 原文地址:https://www.cnblogs.com/1987721594zy/p/9872345.html
Copyright © 2011-2022 走看看