地图集web项目_技术学习(一)_前后端数据传输(ajax)

简介: 地图集web项目_技术学习(一)_前后端数据传输(ajax)

之间经历的一些弯路和众多bug就不说了,直接解释代码吧:

第一个前后端数据交互:

//jsp页面的ajax函数
        array.push(11);
        array.push(12);
        array.push(13);
        array.push(14);
        $.ajax({
            type : 'POST',
            url: 'getmarks.action',//请求对应的url(controller)
            contentType : 'application/json;charset=UTF-8',
            data : JSON.stringify(array),//接收数据到data
            dataType: "json",//设置请求返回的数据格式为json
            success : function(data) {
                console.info(data);//控制台输出data
            }
        });
//后端controller
    @RequestMapping(path = "/getall.action", produces = {"application/json;charset=UTF-8"})  
    @ResponseBody//根据前端要求返回的数据格式自动进行转换
        public String testPost() throws IOException {
        List<Test> testList = this.testService.getTestList();
        System.out.println(testList);
        return JSON.toJSONString(testList);//返回给前端数据
    }

对于@ResponseBody的详解:

SPRINGMVC注解之@RESPONSEBODY和@REQUESTBODY详解

第二个前后端数据交互:

//得到每页显示条数
        var pageSize = $("#pageSize").val();
        //得到显示第几页
        var pageNum = $("#pageNum").val();
        $.ajax({
            type: "POST",
            async: false,
            url: "http://localhost:8080/assurance/pager",
            data: {
                "pageSize": pageSize,
                "pageNo": pageNum
            },
            dataType: "json",
            success: function (data) {
                   console.info(data);
            }
//后端controller
//这是一个分页,后端设置好后可以自动对page对象中的pageSize,pageNo赋值
@RequestMapping(value={"/pager"},produces = {"application/json;charset=UTF-8"})
    @ResponseBody
    public Page selectByExample(Page<LangRes> page, LangRes langRes, Model model){
        System.out.println(page);
        model.addAttribute("langRes",langRes);
        LangResExample example = new LangResExample();
        LangResExample.Criteria c = example.createCriteria();
        if(langRes.getId()!=null){
            c.andIdEqualTo(langRes.getId());
        }
        if(langRes.getName()!=null){
            c.andNameEqualTo(langRes.getName());
        }
        if(langRes.getAudioName()!=null){
            c.andAudioNameEqualTo(langRes.getAudioName());
        }
        if(langRes.getVideoName()!=null){
            c.andVideoNameEqualTo(langRes.getVideoName());
        }
        if(langRes.getComment()!=null){
            c.andCommentEqualTo(langRes.getComment());
        }
        if(langRes.getPronunciation()!=null){
            c.andPronunciationEqualTo(langRes.getPronunciation());
        }
        if(langRes.getCatalog()!=null){
            c.andCatalogEqualTo(langRes.getCatalog());
        }
        if(langRes.getSpeaker()!=null){
            c.andSpeakerEqualTo(langRes.getSpeaker());
        }
        if (langRes.getDetailsId()!=null){
            c.andDetailsIdEqualTo(langRes.getDetailsId());
        }
        example.setOrderByClause(page.getPageSorts());
        return assuranceService.selectByExample(example, page);
    }

当然还有一个问题:

produces = {“application/json;charset=UTF-8”}

如果去掉这句话,后端在前端返回的数据中如果出现中文,就会无法显示,刚开始以为是前端的问题,请教了师兄后,发现是后端传输数据的问题,简单来说照我这样写就好,详解请看:

解决springMVC4下使用@ResponseBody的中文乱码问题


AIEarth是一个由众多领域内专家博主共同打造的学术平台,旨在建设一个拥抱智慧未来的学术殿堂!【平台地址:https://devpress.csdn.net/aiearth】 很高兴认识你!加入我们共同进步!

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
目录
相关文章
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
909 1
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
1236 64
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
1155 0
|
人工智能 安全 程序员
用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
1785 12
|
安全 Java 数据安全/隐私保护
springSecurity学习之springSecurity过滤web请求
通过配置 Spring Security 的过滤器链,开发者可以灵活地管理 Web 请求的安全性。理解核心过滤器的作用以及如何配置和组合这些过滤器,可以帮助开发者实现复杂的安全需求。通过具体的示例代码,可以清晰地了解 Spring Security 的配置方法和实践。
824 23
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
1250 7
|
安全 Linux 开发工具
零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
OpenIM 为开发者提供开源即时通讯 SDK,作为 Twilio、Sendbird 等云服务的替代方案。借助 OpenIM,开发者可以构建安全可靠的即时通讯应用,如 WeChat、Zoom、Slack 等。 本仓库基于开源版 OpenIM SDK 开发,提供了一款基于 Electron 的即时通讯应用。您可以使用此应用程序作为 OpenIM SDK 的参考实现。本项目同时引用了 @openim/electron-client-sdk 和 @openim/wasm-client-sdk,分别为 Electron 版本和 Web 版本的 SDK,可以同时构建 PC Web 程序和桌面应用(Wi
1754 2
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
1963 1