SpringMVC学习四、数据处理与乱码问题

数据处理

处理提交数据

  1. 提交的域名称和处理方法的参数名一致
  2. 提交的域名称和处理方法的参数名不一致
    @GetMapping("/t1")
        public String test1(@RequestParam("name1") String name, Model model) {
            //1.接收前端参数
            System.out.println("接收到前端的参数为:" + name);
            //2.将返回代结果传递给前端
            model.addAttribute("msg",name);
            //3.跳转视图
            return "test";
        }
  3. 提交的是一个对象
        @GetMapping("/t2")
        public String test2(User user) {
            System.out.println(user);
            return "test";
        }
    http://localhost:8080/springmvc_03_servlet_war_exploded/user/t2?id=1&name=q&age=1

Model、ModelMap、ModeAndView的区别

  • Model 只有个别方法,适合存储数据,简化
  • ModelMap 继承了 LinkedMap,除了实现自身方法,还可以使用LinkedMap的方法与特性
  • ModelAndView 可以在存储数据的同时,进行设置返回的逻辑视图,进行控制展示层的跳转

乱码问题

解决方案一、过滤器
public class EncodingFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        servletRequest.setCharacterEncoding("utf-8");
        servletResponse.setCharacterEncoding("utf-8");

        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {

    }
}
<filter>
    <filter-name>encoding</filter-name>
    <filter-class>cn.imut.filter.EncodingFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>encoding</filter-name>
    <!-- 过滤所有的请求-->
    <url-pattern>/*</url-pattern>
</filter-mapping>
@Controller
public class EncodingController {

    //过滤器解决乱码
    @PostMapping("/e/t1")
    public String test1(String name, Model model) {
        model.addAttribute("msg",name);
        return "test";
    }
}
解决方案二、SpringMVC自带过滤器
<!-- springMVC自带过滤器-->
<filter>
    <filter-name>encoding</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

    <init-param>
        <param-name>eccoding</param-name>
        <param-value>utf-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encoding</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

原文地址:https://www.cnblogs.com/yfyyy/p/12433557.html

时间: 2024-10-16 23:51:07

SpringMVC学习四、数据处理与乱码问题的相关文章

SpringMVC学习(四)——Spring、MyBatis和SpringMVC的整合

之前我整合了Spring和MyBatis这两个框架,不会的可以看我的文章MyBatis框架的学习(六)——MyBatis整合Spring.本文我再来讲SpringMVC和MyBatis整合开发的方法,这样的话,Spring.MyBatis和SpringMVC三大框架的整合开发我们就学会了.这里我使用的Spring是Spring4.1.3这个版本(SpringMVC自然也是这个版本),MyBatis是MyBatis3.2.7这个版本. 为了更好的学习SpringMVC和MyBatis整合开发的方法

SpringMVC学习(五)——SpringMVC的参数绑定

SpringMVC中的参数绑定还是蛮重要的,所以单独开一篇文章来讲解.本文所有案例代码的编写均建立在前文SpringMVC学习(四)——Spring.MyBatis和SpringMVC的整合的案例基础之上,因此希望读者能仔细阅读这篇文章. 默认支持的数据类型 现在有这样一个需求:打开商品编辑页面,展示商品信息.这是我对这个需求的分析:编辑商品信息,需要根据商品id查询商品信息,然后展示到页面.我这里假设请求的url为/itemEdit.action,由于我想要根据商品id查询商品信息,所以需要传

SpringMVC学习三(日期参数/数据保存/重定向/乱码问题)

静态资源的映射 Springmvc完成ajax功能 SpringMVC返回中文到ajax乱码问题解决方式 1.静态资源映射 对于之前web.xml配置文件中的 先做出如下更改,不可写“/*”因为有区别 “/”代表所有请求都需要经过此拦截器(之前学习中的list.do也可以写成list即可),但我们发现即使设置了此拦截,通过后却依然不能显示图片等等,即.jsp/.png等后缀的静态资源文件 解决此问题的方法需要在spring配置文件中加入有着 释放静态资源 作用的代码 <mvc:default-s

SpringMVC学习笔记(二): 日常使用功能

前提: 1.web.xml 和spring-mvc核心配置如:SpringMVC学习笔记(一): 基础知识中注解实现. 2.类的@RequestMapping(value="/annotationController") 3.spring-mvc 推荐使用注解实现. 一.数据的接收 (一)URL参数数据的接收 1.使用 HttpServletRequest 获取参数 <span style="font-size:18px;"><span style

史上最全的SpringMVC学习笔记

SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 <!--configure the setting of springmvcDispatcherServlet and configure the mapping--> <servlet> <servlet-name>springmvc</servlet

Struts2框架学习(三) 数据处理

Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:ValueStack一种数据结构,操作数据的方式为:先进后出 OGNL : Object-GraphNavigation Language(对象图形导航语言)将多个对象的关系使用一种树形的结构展现出来,更像一个图形,那么如果需要对树形结构的节点数据进行操作,那么可以使用 对象.属性 的方式进行操作,OGNL技

springMVC3学习(四)--访问静态文件如js,jpg,css

如果你的DispatcherServlet拦截的是*.do这样的URL,就不存在访问不到静态资源的问题 如果你的DispatcherServlet拦截了"/"所有的请求,那同时对*.js,*.jpg的访问也就被拦截了. 我们在进行springMVC开发时,必定会在jsp页面引入js.img和css等文件. 大多数人会将这些分类存放在WebRoot文件下新建的文件夹下面. 同时,会在web.xml文件中配置拦截所有请求.这样就造成了页面无法访问到js.img和css文件夹中的文件了 方法

SpringMVC学习系列

SpringMVC学习系列(1) 之 初识SpringMVC SpringMVC学习系列(2) 之 经典的HelloWorld实现 SpringMVC学习系列(3) 之 URL请求到Action的映射规则SpringMVC学习系列(4) 之 数据绑定-1 SpringMVC学习系列(5) 之 数据绑定-2 SpringMVC学习系列(6) 之 数据验证 SpringMVC学习系列(7) 之 格式化显示 SpringMVC学习系列(8) 之 国际化 SpringMVC学习系列(9) 之 实现注解式

SpringMVC学习(六)——SpringMVC高级参数绑定与@RequestMapping注解

高级参数绑定 现在进入SpringMVC高级参数绑定的学习,本文所有案例代码的编写均建立在前文SpringMVC学习(五)——SpringMVC的参数绑定的案例基础之上,因此希望读者能仔细阅读这篇文章. 绑定数组 现有这样一个需求:在商品列表页面选中多个商品,然后删除之.下面是我对该需求的分析:此功能要求商品列表页面中的每个商品前有一个checkbook(复选框),选中多个商品后点击删除按钮把商品id传递给Controller,根据商品id批量删除商品信息. 首先将itemList.jsp页面改