zoukankan      html  css  js  c++  java
  • SpringMVC-06-数据处理

    6. 数据处理

    处理提交数据

    1. 提交的域名称和处理方法的参数一致

      提交数据:http://localhost:8080/user/t1?name=huba

      处理方法:

      public String test1(String name, Model model){
              //1.接受前端参数
              System.out.println("接受到前端参数");
              //2.将返回结果传递给前端
              model.addAttribute("msg",name);
              //3.页面跳转
              return "test";
          }
      
    2. 提交的域名称和处理方法的参数名不一致

      提交数据:http://localhost:8080/user/t1?username=huba

      处理方法:

      //@RequestParam("username"):username 域名称
      @GetMapping("/t1")
          public String test1(@RequestParam("username") String name, Model model){
              //1.接受前端参数
              System.out.println("接受到前端参数");
              //2.将返回结果传递给前端
              model.addAttribute("msg",name);
              //3.页面跳转
              return "test";
          }
      
    3. 提交的是一个对象

      要求提交的表单域和对象的属性名一致,参数使用对象即可。

      1. 实体类

        @Data
        @AllArgsConstructor
        @NoArgsConstructor
        public class User {
            private int id;
            private String name;
            private int age;
        
        }
        
      2. 提交数据:http://localhost:8080/user/t2?name=huba&id=1&age=15

      3. 处理方法:

        @GetMapping("/t2")
            public String test2(User user, Model model){
                System.out.println("接受到前端参数");
                model.addAttribute("msg",user.toString());
                return "test";
            }
        

        注意点:

        匹配对象中的字段名;名字一致必须一致,否则为null。

    数据显示到前端

    1. 通过ModelAndView
    2. 通过ModelMap
    3. 通过Model

    对比

    对新手而言简单来说使用区别就是:

    • Model:只有寥寥几个方法,适合存储数据,简化版
    • ModelMap:继承了LinkedHashMap
    • ModelAndView:除了可以存储数据,也可以进行设置返回的逻辑视图,进行控制展示层的跳转。

    乱码问题

    测试步骤:

    1. 我们可以再首页编写一个提交的表单

      <form action="/e/t1" method="post">
          <input type="text" name="name">
          <input type="submit">
      </form>
      
    2. 后台编写对应的处理类

      @PostMapping("/e/t1")
      public String test1(String name, Model model){
      
          model.addAttribute("msg",name);
      
          return "test";
      }
      
    3. 输入中文测试,发现乱码

    SpringMVC给我们提供了一个过滤器,可以在web.xml中配置,修改了xml文件需要重启服务器!

    <filter>
        <filter-name>encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    

  • 相关阅读:
    POJ 2388
    HDU 6152
    POJ 3085
    C语言字符数组回顾
    ZOJ 2480
    SQL学习(1)初学实验:SQL Server基本配置及基本操作
    Kali Linux入坑之基本配置(2018.1)
    C学习笔记(逗号表达式)
    C学习笔记(自增)
    forEach()&map()区别
  • 原文地址:https://www.cnblogs.com/CodeHuba/p/13621810.html
Copyright © 2011-2022 走看看