栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【SpringMVC】(2)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【SpringMVC】(2)

文章目录
      • 数据处理
      • 数据回显
      • 乱码问题
      • json
          • jackson
          • 乱码问题配置
          • fastjson

数据处理

springmvc框架处理前端请求的数据
从前端取出的参数务必加上注解 @RequestParam(value) ,这是约定用于区别前端来的参数和普通参数

  1. 域名里的参数和方法的参数名一致
localhost:8080//add?a=1&b=2
@GetMapping("/add/{a}/{b}")
public String test(Model model,int a,int b){
    int res = a+b;
    model.addAttribute("msg","结果为"+res);
    return "test";
}

这样的情况可以直接取出 a 和 b 。

  1. 域名里的参数和方法的参数名不一致
localhost:8080//add?a1=1&b=2
@GetMapping("/add/{a}/{b}")
public String test(Model model,@RequestParam("a1") int a,int b){
    int res = a+b;
    model.addAttribute("msg","结果为"+res);
    return "test";
}

这样的话可以用注解 @RequestParam(value) 来指定提交的参数名

  1. 提交对象
localhost:8080/user/t2?id=1&name=sb&age=18
//接收User对象,参数列表:id  name  age
//localhost:8080/user/t2?id=1&name=sb&age=18
@GetMapping("/t2")
public String test2(User user){
    System.out.println(user);
    return "test";
}

参数是一个 User 对象,它里面对应有id、name、age三个参数,请求的url里也有这三个参数就会 一一对应上,不论顺序,不论其他的干扰项参数。

数据回显
  1. ModelAndView
    用于实现Conreoller接口编写的controller层代码。
    实现Controller类需要实现其handleRequest方法,方法的返回值类型就是 ModelAndView 。

  2. Model
    用注解@Controller实现的controller层代码,在返回值类型为String的方法中,加入一个Model类的参数,可以实现回显的设置。

  3. ModelMap
    继承了LinkedHashMap

乱码问题

使用过滤器解决

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("utf8");
        servletResponse.setCharacterEncoding("utf8");
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {}
}

注册到web.xml


    EncodingFilter
    com.zxt.filter.EncodingFilter


    EncodingFilter
    /*

这里的/*代表处理所有的文件,不能用/是因为这是匹配请求路径的,我们的过滤器是要过滤项目里的所有文件

当然spring也有个可以直接用的过滤器


    encoding
    org.springframework.web.filter.CharacterEncodingFilter


    encoding
    /*

json jackson

依赖



    com.fasterxml.jackson.core
    jackson-databind
    2.13.2.2

使用 jackson 依赖,这个依赖会提供一个对象ObjectMapper,可以使用这个对象的writeValueAsString(obj)方法,把一个对象转成一个json格式的String对象。

@ResponseBody 使controller层的方法不走视图解析器,返回值就是返回的字符串
@RestController 使controller层的某个类的所有方法都不走视图解析器。

乱码问题配置

在 springmvc-servlet.xml 里配置


    
        
            
        
        
            
                
                    
                
            
        
    

fastjson

依赖


    com.alibaba
    fastjson
    2.0.2

内置一个重要的类,JSON代表json格式的对象,toJSONString()方法可以把对象转为json格式。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/889293.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号