精华内容
下载资源
问答
  • 后端接收前端List

    千次阅读 2019-11-16 19:02:55
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。...前端, var user = {id:"1",name:"张三"}; var arr = new Array(); arr.push(user); var data = J...

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/xiahuale/article/details/90777497
    前端,

    var user = {id:"1",name:"张三"};
    var arr = new Array();
    arr.push(user);
    var data = JSON.stringify(arr);
     
    $.ajax({
    	type:"POST",
    	url: url,
    	data: data ,
    	contentType : 'application/json', // 需要该设置
    	success:function(data){
    	},
    	error:function(jqXHR){
    	}
    });
     
    // 如果是vue 用JSON.stringify 不能用 qs.stringify(),axios 设置 contentType 
    axios.request({
        url: url,
        method: 'post',
        data: data,
        headers: {'Content-Type': 'application/json'}
      })
    

    后端

    @RequestMapping(value="/xxx", method = {RequestMethod.POST})
    public Object func(@RequestBody List<User> userList)  {
        // @RequestBody 需要该注解
    }
    

    ————————————————
    版权声明:本文为CSDN博主「初级码奴」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/xiahuale/article/details/90777497

    展开全文
  • 1.其实之前对这一块也是比较含糊不清晰的,之前也总结了一下,但是忘了,现在联系着后端返回前端的方式一块总结了吧,每一种情况我都会列举出一个小例子供大家参考学习,同时也希望能帮到大家进一步理解,同时也希望...

    一 、背景

    1.其实之前对这一块也是比较含糊不清晰的,之前也总结了一下,但是忘了,现在联系着后端返回前端的方式一块总结了吧,每一种情况我都会列举出一个小例子供大家参考学习,同时也希望能帮到大家进一步理解,同时也希望大家能批评指正我的错误,共勉!!!

    二、后端接收前端的方式

    1.通过@RequestParam注解接收请求参数;

    1.1.测试类

    @RestController
    public class test01 {
        @RequestMapping(value = "/testRequestParam")
        public String testRequestParams(@RequestParam(value = "userName") String userName){
            System.out.println("userName is " + userName);
            return "success";
        }
    }
    

    1.2.测试结果


    2.通过Bean封装,接收多个请求参数

    2.1.实体类

    public class Person {
        private Integer id;
        private String name;
    
        public Integer getId() {
            return id;
        }
    
        public void setId(Integer id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        @Override
        public String toString() {
            return "Person{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    '}';
        }
    }

    2.2.测试类

    @RestController
    public class test01 {
        @RequestMapping(value = "/testRequestParam")
        public String testRequestParams(Person person){
            JSONObject json = new JSONObject();
            return json.toJSONString(person);
        }
    }

    2.3.测试结果


    3.通过@ModelAttribute绑定接收前端表单数据

    3.1.测试类

    @RestController
    public class test01 {
        @RequestMapping(value = "/testRequestParam")
        public String testRequestParams(@ModelAttribute("person") Person person){
            JSONObject json = new JSONObject();
            return json.toJSONString(person);
        }
    }

    3.2.测试结果

    4.通过@PathVariable获取URL中某段可变值;

    4.1.测试类

    @RestController
    public class test01 {
        @RequestMapping(value="/testRequestParam/{userName}",method = RequestMethod.GET)
        public String getProduct(@PathVariable("userName") String userName){
            System.out.println("userName : " + userName);
            return userName;
        }
    }

    4.2.测试结果

    5.通过@RequestBody接收请求体中的数据

    5.1.测试类

    @RestController
    public class test01 {
        @RequestMapping(value="/testRequestParam")
        public String getProduct(@RequestBody Person person){
            return person.toString();
        }
    }

    5.2.测试结果

    6.通过@RequestHeader获取请求头中的数据

    6.1.页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <a href="/testRequestHeader">test RequestHeader</a>
    </body>
    </html>

    6.2.测试类

    @RestController
    public class test02 {
        @RequestMapping(value = "/testRequestHeader")
        public String testRequestHeader(@RequestHeader(value = "Accept-Language") String contentLanguage){
            System.out.println("Content Language is " + contentLanguage);
            return "success";
        }
    }

    6.3.测试结果

    后台打印结果:

    7.通过MultipartFile接收前端上传的文件

    这个暂时还没接触过,就不整理了,后期如果接触了,就再去进行整理了。
    8.还可以通过原生的HttpServletRequest取值

    8.1.测试类

    @RestController
    public class test02 {
        @RequestMapping(value = "/testRequestHeader")
        public String testRequestHeader(HttpServletRequest request){
            HttpSession session = request.getSession();
            session.setAttribute("111","cmx");
            System.out.println(request.getSession().getAttribute("111"));
            System.out.println(request.getHeader("Accept-Language"));
            return "success";
        }
    }

    8.2.测试结果

    三、后端返回前端的方式

    1.采用HttpServletRequest:
    1.1.测试(我采用的是springboot+web.xml的方式进行测试的),文章的最后我会把代码贴出来供大家学习。

    @Controller
    public class test02 {
        @RequestMapping("/testRequestHeader")
        public String index(HttpServletRequest request){
            request.setAttribute("name", "张三");
            return "index";
        }
    }

    1.2.jsp页面(后面几个测试我都用这个进行测试了)

    <%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    <h1>添加用户信息4</h1>
    <form action="/testRequestHeader" method="post">
        <input type="submit" value="提交">
    </form>
    ${name}
    </body>
    </html>
    
    

    1.3.测试结果(访问localhost:8090 出现页面此时还没有张三,然后点击提交,结果张三出来了)

    2.采用ModelAndView方式:
    采用这种的时候具体方法的返回值要为ModelAndView。
    2.1.测试类

    @Controller
    public class test02 {
        @RequestMapping("/testRequestHeader")
            public ModelAndView add(){
                ModelAndView mav = new ModelAndView("index");
                mav.addObject("name","cmx");
                return mav;
            }
    }

    2.2.测试结果(同上访问)

    3.采用Model方式:
    3.1.测试类

    @Controller
    public class test02 {
        @RequestMapping("/testRequestHeader")
            public String add(Model model){
            model.addAttribute("name", "cmx");
                return "index";
            }
    }

    3.2.测试结果

    4.采用Map的方式:

    4.1.测试类

    @Controller
    public class test02 {
        @RequestMapping("/testRequestHeader")
            public String add(Map map){
            map.put("name", "cmx");
                return "index";
            }
    }
    

    4.2.测试结果


    5.采用ModelMap的方式:
    5.1.测试类

    @Controller
    public class test02 {
        @RequestMapping("/testRequestHeader")
            public String add(ModelMap modelmap){
            modelmap.put("name", "cmx");
                return "index"; 
        }
    }

    5.2.测试结果

    四、下面说下springboot与jsp的整合(默认是不支持的)

    1.项目目录结构

    2.web.xml的配置

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5"
             xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

    3.application.properties(端口号你么可以指定,也可以不用指定默认8080,我的电脑不知道哪一个程序起端口冲突了,所以我写的是8090端口)

    server.port=8090
    spring.mvc.view.prefix=/WEB-INF/jsp/
    spring.mvc.view.suffix=.jsp

    4.pom.xml

    <!-- servlet 依赖 -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
    </dependency>
    <!-- tomcat 的支持.-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>

    5.index.jsp(jsp目录下的)

    <%@ page language="java" import="java.util.*" contentType="text/html;charset=utf-8"%>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    <h1>添加用户信息4</h1>
    <form action="/testRequestHeader" method="post">
        <input type="submit" value="提交">
    </form>
    ${name}
    </body>
    </html>

    5.然后你就可以开心的测试了

    五、结束

    终于搞定了,希望能帮助到你们,欢迎批评指正我的错误。谢谢。共勉

    Always keep the faith!!!

     

     

    展开全文
  • 后端给前端传不同类型的json数据

    千次阅读 2019-11-17 11:20:32
    我和我的一位前端小伙伴合作开发一个我们在学校的科研项目,我们打算用前后端分离的思想来开发,作为一名没有开发经验大四的学生,在开发中遇到不少问题,这个专栏就用来记录,我们在开发过程遇到了哪些问题,以及这...

    最近,我和我的一位前端小伙伴合作开发一个我们在学校的科研项目,我们打算用前后端分离的思想来开发,作为一名没有开发经验大四的学生,在开发中遇到不少问题,这个专栏就用来记录,我们在开发过程遇到了哪些问题,以及这个问题是如何处理的,当然主要是后端的问题,毕竟我是做后端的嘛

    好啦废话不多说,开始正文。

    问题描述:

    • 首先我遇到的第一个问题就是,在给前端传json数据。
    • 我们前后端数据通信一般使用json格式的数据来传递, 那么后端如何给前端传值,以及我们有那么多的数据类型,都是怎么传递的呢?
    public class JackSonTest {
        
        //json传送一个实例对象
        @Test
        public void test1() throws Exception {
            Person p = new Person();
            p.setName("Jack");
            p.setAge(22);
            p.setGender("男");
    
            //2.创建ObjectMapper
            ObjectMapper mapper = new ObjectMapper();
    
            //3.转换
            String s = mapper.writeValueAsString(p);
            System.out.println(s);
    
            //写入到指定文件中
            //mapper.writeValue(new File("d://a.txt"),p);
    
            //写入到指定流中
            //mapper.writeValue(new FileOutputStream("d://a.txt"),p);
            //mapper.writeValue(new FileWriter("d://a.txt"),p);
        }
        
        @Test
        public void test2() throws JsonProcessingException {
            Person p = new Person();
            p.setName("Rose");
            p.setAge(22);
            p.setGender("女");
            p.setBirthday(new Date());
    
            ObjectMapper mapper = new ObjectMapper();
            String json = mapper.writeValueAsString(p);
    
            System.out.println(json);
    
        }
        
        //json传送一个list
        @Test
        public void test3() throws JsonProcessingException {
            Person p = new Person();
            p.setName("Haker");
            p.setAge(33);
            p.setGender("男");
            p.setBirthday(new Date());
    
            Person p1 = new Person();
            p1.setName("Shelly");
            p1.setAge(33);
            p1.setGender("男");
            p1.setBirthday(new Date());
    
            Person p2 = new Person();
            p2.setName("Bale");
            p2.setAge(33);
            p2.setGender("男");
            p2.setBirthday(new Date());
    
            List<Person> list = new ArrayList<>();
            list.add(p);
            list.add(p1);
            list.add(p2);
    
            ObjectMapper mapper = new ObjectMapper();
            String json = mapper.writeValueAsString(list);
    
            System.out.println(json);
    
        }
        
        //json传送一个map
        @Test
        public void test4() throws JsonProcessingException {
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("name", "Magie");
            map.put("age", 22);
            map.put("gender", "女");
    
            ObjectMapper mapper = new ObjectMapper();
            String json = mapper.writeValueAsString(map);
            System.out.println(json);
        }
    
        //json字符串转换为一个实例对象
        @Test
        public void test5() throws JsonProcessingException {
    
            String js = "{\"gender\":\"男\",\"name\":\"Tokky\",\"age\":22}";
    
            ObjectMapper mapper = new ObjectMapper();
            Person person = mapper.readValue(js, Person.class);
    
            System.out.println(person);
    
        }
    
    }

     问题解决:

    @Controller
    public class FileController {
    
        @ResponseBody
        @RequestMapping("/test")
        public String file() throws JsonProcessingException {
    
            List<MyFile> list = new ArrayList<>(10);
            list.add(new MyFile("01", new Date()));
            list.add(new MyFile("02", new Date()));
            list.add(new MyFile("03", new Date()));
            list.add(new MyFile("04", new Date()));
            list.add(new MyFile("05", new Date()));
            list.add(new MyFile("06", new Date()));
            list.add(new MyFile("07", new Date()));
            list.add(new MyFile("08", new Date()));
            list.add(new MyFile("09", new Date()));
            list.add(new MyFile("10", new Date()));
            list.add(new MyFile("11", new Date()));
    
            ObjectMapper mapper = new ObjectMapper();
            String json = mapper.writeValueAsString(list);
    
            return json;
        }
    }

    总结:

    • 通过查阅资料学习;
    • 解析,转换josn数据需要依赖第三方jar包:Jackson DatabindJackson CoreJackson Annotations
    • 1.准备json数据,(对象、集合、字符串)
    • 2.创建ObjectMapper对象
    • 3.调用writeValueAsString方法
    • 如果是解析json字符串调用readValue方法
    展开全文
  • 后端给前端的Bean中有的属性为Null怎么处理? 前端后端请求数据,而返回的Bean中有的属性为Null值,如图 一般遇到这种情况,是要尽量避免向前端传Null值的,因为前端对这样的数据处理起来很麻烦,所以一般...

    后端传给前端的Bean中有的属性为Null怎么处理?

    • 前端向后端请求数据,而返回的Bean中有的属性为Null值,如图
      在这里插入图片描述

    一般遇到这种情况,是要尽量避免向前端传Null值的,因为前端对这样的数据处理起来很麻烦,所以一般情况下我们如果字段是非必需的数据,一般选择不返回这条属性,如果是必须的话,一般就返回一个空字符占位。

    方法一:直接过滤,选择不返回!

    • 在对象不多的情况下可以选择直接在DTO对象上加上注解,如图
    //如果值为Null则不返回该条属性。
         @JsonInclude(JsonInclude.Include.NON_NULL)
    

    在这里插入图片描述

    • 上面那个注释掉的那个注解也可以同样的效果,只不过已经被技术淘汰了!

    如果对象太多的话,就需要设置全局变量了,这个时候只需找到配置文件,在里面添加一条记录即可!

    #设置全局,Null值不返回到前端
      jackson:
         default-property-inclusion: non_null
    

    在这里插入图片描述

    • 两个方法都可以直接将Null值的属性直接过滤掉!不返回给前端!效果如下,我们可以看到的是orderDtailList对象已经不在了!
      在这里插入图片描述

    方法二:返回空字符占位或设置默认值。

    当然以上的方法是是直接不返回。但一个项目中不可能所有的Null值都不返回,有的数据即使为Null值,又必须返回的数据,这个时候我们一般就选择返回空占位符,或空符号位!

    • 这个时候我们可以直接为对象设置默认值,例如我的orderDtailList返回的是List ,我就直接给它初始化为ArrayList:

    这是我之前的以及返回情况:
    在这里插入图片描述
    在这里插入图片描述

    这是修改过后以及返回情况:
    在这里插入图片描述
    在这里插入图片描述

    • 可以看到的是我的属性并没有返回Null值,而是返回一个空数组占位符!

    如果返回给前端是一个字符串的话,一般就设置个空字符:
    如图,我之前没有给msg设置默认值:

    在这里插入图片描述
    用postman获取数据,可以看到都是返回的值为Null:

    在这里插入图片描述

    这里我将msg设置默认为空字符,再用postman获取返回值可以看到,msg已经变成了空字符!但这条属性依然存在!
    在这里插入图片描述
    在这里插入图片描述
    声明:本文为作者学习廖师兄实战课程中总结所得,如有贻误,望指正!谢谢!

    展开全文
  • 用POST方式,JSON格式
  • 参数传递形式:  ...也可以把list对象放到对象里面 三、Map类型或实体类类型传值,即json格式传值 实体类接受的参数,可以其中的一个,也可以是全部的参数,,即有什么字段对应上,就会传递响...
  • 后端给前端统一返回结果

    千次阅读 2020-11-16 21:06:48
    项目中我们会将响应封装成json返回给前端,一般我们会将所有接口的数据格式统一, 使前端(iOS Android, Web)对数据的操作更一致、轻松。 一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据...
  • 后端接受前端的参数类型

    千次阅读 2018-06-18 22:46:47
    一、普通的键值对参数:get请求实质也是键值对的形式二、list传值也可以把list对象放到对象里面三、Map类型或实体类类型传值,即json格式传值实体类接受的参数,可以其中的一个,也可以是全部的参数,,即有什么字段...
  • C#后端前端json数据格式转换

    千次阅读 2019-08-06 16:06:47
    假如前端发起post请求的一个json对象是这样 { "ID":"01", "NAME":"xiaoming" } 那么后端则需要需要采用单参数post接收参数[FromBody],参数类型则设置为JObject类型,需要引入using Newtonsoft.Json.Linq; ...
  • 需求:后端接收前端符合JSON格式的对象数组 前端传入: var objArray = [{name:"zhangsan",age:"22"},{name:"lisi",age:"20"}]; $.ajax({ url: '/ws_cim_topo/accident/query', data: {"list":JSON.stringify...
  • 最近在和安卓对接口的时候发现往java后端传数据的时候,后台对象无法接收。 说明:后台对象为 类似结构 ObjectA{  private String a;  private String b;  private List<ObjectC> c; } ObjectC{  ...
  • 后端编写前端接口规范:

    千次阅读 2019-11-30 12:51:14
    前端接口需要的返回值: | 字段 | 类型 | 描述 | | ----- | ------ | ------ | | eventTotal | string | 活动参与总人次 | | userTotal | string | 用户总数量 | | digitTotal | string | 数字资源总量 | | ...
  • 前端数组 后端java mvc list 接收

    万次阅读 2018-05-09 09:25:25
    简单说下情况:前端数组传递参数 批量删除数据 发现后端list不能直接接收 开始做法就是1、前端声明数组var ids = [];2、利用push和join方法拼接for(var i=0; i&lt;rows.length; i++){ ids.push(rows[i].id); }...
  • 前端给后端数组,存入数据库得是字符串,中间用逗号分隔 这里主要用的是implode函数 //前传后,写入数据库(数组转换字符串,逗号隔开) public function saveInfo() { $area = input('name'); $sort = ...
  • springMVC获取请求参数的几种...后端前端传递过来的参数封装到/javabeanpojo的包装类中,@ModelAttribute注解的使用,使用@PathVariable注解方式获取参数,使用@RequestParam注解的方式获取参数,List集合、Map集合..
  • 前端发送格式: {memberId: “1365531544990523393”, productId: 12} 后端解析: 将字符串转成Json对象 @PostMapping("delCart") public boolean delCart(@RequestBody String map) { JSONObject mapJson=...
  • websocket实现后端前端实时交互(redis模拟数据库) 1.配置类 代码片. /** * webSocket配置类 */ @Configuration public class SeckillSocketConfig { @Bean public ServerEndpointExporter ...
  • 现在好多公司都是前后端分离开发的项目,那么我们后端会统一给前端返回统一的返回值。一方面是后端代码接口返回值的统一,一方面是前端好理解及查看后端返回的值,那么接下来我将会写一下我在公司里所用到的统一...
  • 前端往后端提交数据的方式常用的就这么三种:1....在后端使用Request.Form的方式接收,比如 前端代码片段: var businesstypes = $("#businesstypes").val(); if (businesstypes == null || businesstype...
  • list ) { let blog = list [ 0 ] ; let user = list [ 1 ] ; console.log ( blog ) ; let input = ` < br/ > < br/ > < h2 class = "h5 mb-4" > < p class = "text-dark" > $ { blog.title }...
  • SpringBoot前端给后端list

    千次阅读 2019-11-09 09:45:12
    前端JS 1 var taskList = ["123","456"]; 2 var params = { 3 taskList: taskList 4 }; 5 6 $.ajax({ 7 type: "PUT", 8 dataType: "json", 9 url: "/client/update", 10 data: params, ...
  • $("#search").click( function () { var adata = { "name" : $("input[ name='title' ]").val(), ... handleList(data.articleList); } }, error :function () { alert("查询失败") } }); }
  • 后端处理前端返回列表实体

    千次阅读 2018-03-10 13:10:42
  • 如果本文对您有所帮助,可以点一下赞???? 本文只是学习笔记,欢迎指错,转载标明出处 ...2、首先后端前端传json需要添加以下maven包 <!-- controller 处理 json --> <dependency> <gr...
  • 在前后端不分离的时候,前端需要后端的值,我们今天康康后端如何向前端传值 前端直接使用Thymeleaf语法即可 使用ModelAndView+Map ModelAndView是用来返回页面的,防止添加了@RestController注解 @GetMapping("/...
  • Web后端跟Ajax前端进行数据交互,这样前端请求才能到达后端后端才能去操作数据库返回数据给前端进行页面渲染。 SpringMVC与Ajax共有五种交互方式: 方法一:通过URL传参  1> Ajax前端:通过URL挂接参数,如 ur:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 71,007
精华内容 28,402
关键字:

后端给前端list