重定向转发,接受参数以及乱码问题解决

   一·重定向和转发:

添加视图解析器,return的字符串,经过解析,跳转视图默认是转发。

@RequestMapping("/h1")
    public String test(Model model){
        model.addAttribute("msg","h1");
        //默认是转发
        return "hello";
    }

    实现重定向:

在字符串前面加上redirect即可:

 @RequestMapping("/h2")
    public String test2(Model model){
        model.addAttribute("msg","h2");
        //重定向
        //不加/ 表示当前类的映射路径下的h1,相当于/c3/h1
        return "redirect:h1";
    }

      等价于:

          此类的地址映射是/c3

 @RequestMapping("/h3")
    public String test3(Model model){
        model.addAttribute("msg","h3");
        //重定向
        return "redirect:/c3/h1";
    }

二· 接受前端参数

 //形式参数的名称与前端传递的参数名称相同,可以不写@RequestParam,但是建议写上,表示这是由前端传来的数据,且如果没有接受到参数会报错
    @RequestMapping("/h1")
    public String test(@RequestParam("name") String name){
        System.out.println("从前端接收到的数据为"+name);

        return "hello";
    }

名称不相同:

 @RequestMapping("/h2")
    //前端的参数名称必须为username
    public String test2(@RequestParam("username") String name){
        System.out.println("从前端接收到的数据为"+name);

        return "hello";
    }

建议不管名称想不想同,都应该写上@RequestParam("username")这种注解,注明这个参数是从前端接受来的!

前端传递对象,如:/h3?name=hzk&age=19,只有名称与后段接受对象的属性名称相同,才会被取到!否则,后端未取到的字段为null值!

@RequestMapping("/h3")
    //前端传递对象,必须前端传递的字段与对象中的属性名一一对应。
    public String test3(User user){
        System.out.println("从前端接收到的数据为"+user);

        return "hello";
    }

三·乱码问题解决

spring也已经为我们写好了一个过滤器,直接在web.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>utf8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值