与后端交互,一般需要提交表单数据,所以,这次渲染得dialog其实是一个<form>

  1. <form id="loginForm">
    <table align="center">
    <tr>
    <th align="right">用户名</th>
    <td>
    <input type="text" name="username"/>
    </td>
    </tr>
    <tr>
    <th align="right">密码</th>
    <td>
    <input type="password" name="password"/>
    </td>
    </tr>
    </table>
    </form>
  2.  
  3. 使用JS的方式渲染表单为对话框
  1. <script type="text/javascript">
    var loginForm;//被循环选择的对象提取出来,这样就用选择器选择一次就够了
    $(function () {
    loginForm = $("#loginForm").dialog({
    title: "登陆",
    width: 250,
    height: 150,
    modal: true,
    closable: false,//登录框不允许关闭,所有去掉关闭按钮
    buttons: [
    {
    text: "登陆",
    handler: function () {
    console.log("登陆");
    }
    }, {
    text: "注册",
    handler: function () {
    console.log("注册");
    }
    }
    ]
    });
    })
    </script>
  2.  
  3. 其实用window组件也能做登录框,但是考虑到如果使用window组件的话,还得自己编写两个(甚至三个)按钮,
  4.  
  5. 所以就使用dialog,直接使用其buttons属性,在底部渲染出两个按钮。以上,用console.log()的方式模拟了等于与注册的操作。
  6.  

那么如何真实的与后端进行交互呢?

  1. 有两种方式
  • 第一种:Ajax
  1. var formData = {
    username:$("input[name='username']").val(),
    password:$("input[name='password']").val(),
    };
    $.ajax({
    type:"POST",
    url:"<%=homePage%>/testController/login.ajax?type=json",
    dataType:"JSON",//预期服务器返回的数据类型
    contentType:"application/json;charset=UTF-8",//发送的数据类型
    data:JSON.stringify(formData),//将JSON对象转化成JSON的字符串形式
    success:function(data){
    if ("0" == data.st){
    console.log("登陆成功");
    }else{
    console.log("登陆失败");
    }
    }
  2.  
  3. })
  1. 对应的后端
  1. @RequestMapping(value = "/login.ajax",params = "type=json")
    @ResponseBody
    public Map<String,String> login1(@RequestBody Map<String, String> map){
    logger.debug("请求参数:"+map);
  2.  
  3. Map<String,String> map1 = login(map);
  4.  
  5. return map1;
    }
  6.  
  7. 说明:前端发送给后端的所有数据,本质上都只可能是字符串,所以,当我在发送Ajax请求的时候,因为指定了 contentType application/json,所以,需要将json对象转换成JSON字符串。而使用Spring MVC作为后端在接收的时候,需要使用@RequestBody注解,该注解将JSON字符串转换成指定的对象,这里转换成了Map
  8.  
  9. 如果不希望通过JSON字符串发送,则可以如下:
  1. handler: function () {
    console.log("登陆");
    var formData = {
    username:$("input[name='username']").val(),
    password:$("input[name='password']").val(),
    };
    $.ajax({
    type:"POST",
    url:"<%=homePage%>/testController/login.ajax?type=form",
    dataType:"JSON",//预期服务器返回的数据类型
    data:formData,
    success:function(data){
    if ("0" == data.st){
    console.log("登陆成功");
    }else{
    console.log("登陆失败");
    }
    }
  2.  
  3. })
    }
  4.  
  5. 发送的时候不指定发送的类型,默认是 application/x-www-form-urlencoded; 就是k1=v1&k2=v2 的字符串形式
    后端也要做相应的改动
  1. @RequestMapping(value = "/login.ajax",params = "type=form")
    @ResponseBody
    public Map<String,String> login2(@RequestParam Map<String, String> map){
    logger.debug("请求参数:"+map);
  2.  
  3. Map<String,String> map1 = login(map);
    return map1;
    }
  1. ajax方法还有很多其他参数,这里就不展开了,详见文档
  2.  
  3. 上述过程有一个问题,那就是两个表单参数都是自己手动获取的,有没有什么方法,能够获取某个表单中的全部数据呢?答案当然是肯定的
  1. data:$("#loginForm").serialize(),
  1. 对表单执行 serialize() 方法后,就能够将表单中的输入域全部转化成 k1=v1&k2=v2 的形式传递给后台,Spring MVC通过@RequestParam注解接收(其实不写也行,就使用一个Map或者cmd对象)
  • 第二种:EasyUI的Form表单组件

见Form组件的使用

  1.  
  1.  

窗口 - dialog - 与后端交互的更多相关文章

  1. 微信小程序 + thinkjs + mongoDB 实现简单的前后端交互

    说明:这段时间跟老师学习了一下mongodb数据库,这次也是第一次搭建后台服务,出了不少差错,特此来复盘一下,非常感谢对我提供帮助的同学~ 一.使用 thinkjs + mongodb 创建后台服务 ...

  2. web前后端交互,nodejs

    手机赚钱怎么赚,给大家推荐一个手机赚钱APP汇总平台:手指乐(http://www.szhile.com/),辛苦搬砖之余用闲余时间动动手指,就可以日赚数百元 web前后端交互 前后端交互可以采用混合 ...

  3. 微信App支付接入步骤&支付中前后端交互流程

    最近对微信App支付(App端集成微信支付SDK)申请步骤,以及终端在进行微信支付时商户App.商户Server.微信App.微信支付Server的交互流程进行了简单了解.这篇文章应该算是学习笔记,分 ...

  4. Node之简单的前后端交互

    node是前端必学的一门技能,我们都知道node是用的js做后端,在学习node之前我们有必要明白node是如何实现前后端交互的. 这里写了一个简单的通过原生ajax与node实现的一个交互,刚刚学n ...

  5. Django之META与前后端交互

    Django之META与前后端交互 1 提交表单之GET 前端提交数据与发送 1)提交表单数据 2)提交JSON数据 后端的数据接收与响应 1)接收GET请求数据 2)接收POST请求数据 3)响应请 ...

  6. 前后端交互实现(nginx,json,以及datatable的问题相关)

    1.同源问题解决 首先,在同一个域下搭建网络域名访问,需要nginx软件,下载之后修改部分配置 然后再终端下cmd  nginx.exe命令,或者打开nginx.exe文件,会运行nginx一闪而过, ...

  7. springboot+mybatis+thymeleaf项目搭建及前后端交互

    前言 spring boot简化了spring的开发, 开发人员在开发过程中省去了大量的配置, 方便开发人员后期维护. 使用spring boot可以快速的开发出restful风格微服务架构. 本文将 ...

  8. 百度ueditor的图片上传,前后端交互使用

    百度ueditor的使用 一个文本编辑器,看了网上很多文档写的很乱,这里拾人牙慧,整理下怎么使用. 这个东西如果不涉及到图片附件上传,其实很简单,就是几个前端文件,直接引用,然后配置下ueditor. ...

  9. SSM-网站后台管理系统制作(4)---Ajax前后端交互

    前提:Ajax本身就为前后端交互服务的,实现功能:用户输入信息,实时判断用户的情况,这也是现在登录界面普遍流行的做法.前端js通过注释识别Controller层,该层查询返回,和之前Google验证码 ...

随机推荐

  1. 我的Android六章:Android中SQLite数据库操作

    今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...

  2. 移动Web开发(二)

    这些天一直在忙iOS,Android和.Net方面的知识都有些忘记了,汗.不过还是先重温一下HTML吧,手动滑稽. 说实话前面的基础部分基本上大家都会,就当看个热闹吧. 1.HTML的核心要素--标签 ...

  3. 【代码笔记】iOS-多张图片合成一张

    代码: RootViewController.m #import "RootViewController.h" @interface RootViewController () @ ...

  4. redis数据类型

    Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...

  5. vs出现“已经在解决方案中打开了具有该名称的项目”问题的解决方案

    经过本人测试,这种问题一般出现在装了svn的项目. 其实删除了删除sln和csproj文件中的SVN配置信息就行了 需要删除的信息 sln文件中: GlobalSection(SubversionSc ...

  6. VBA 操作数字

    第8章 操作数字 加.减.乘.除.平方与指数(^2 或者^n).平方根Sqr.正弦Sin.余弦Cos.正切Tan.反正切Atn.绝对值Abs 转换为整型数.长整型数.双精度型数和值 Cint当双精度型 ...

  7. WebMatrix之WebMatrix.Data

    WebMatrix之WebMatrix.Data WebMatrix数据访问系列目次: WebMatrix之数据访问 WebMatrix之WebMatrix.Data WebMatrix之WebMat ...

  8. 挖一挖C#中那些我们不常用的东西之系列(5)——FlagAttribute

    说到FlagsAttribute,源自前几天看到了一小段代码,大概意思就是根据航班政策来返回哪些配送方式是否可用,根据这些是否可用 来隐藏或者开启界面的相关配送方式,如果大家订过机票可能知道配送方式有 ...

  9. spring hibernate摘记

    一.spring 1.ContextLoaderListener    它作用就是启动Web容器时,自动装配ApplicationContext的配置信息.因为它实现了ServletContextLi ...

  10. Oracle 安装后关于用户

    一.关于用户 Oracle安装会自动的生产sys用户和system用户: 1. sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户的默认密码是ch ...