47SpringMVC重定向视图

SpringMVC重定向很简单,只需要让控制器返回RedirectView对象即可(或者在返回的视图名前加上前缀“redirect:”,也可以表示这是重定向而不是ViewName)
例如:

@Controller
public class UserController
{
    @Resource(name="userService")
    private UserService userService;
    @PostMapping("/login")
    public View login(String username, String password, RedirectAttributes model)
    {
        if (userService.userLogin(username,password)>0)
        {
//            model.addAllAttributes(Map.of("tip","欢迎您,登入成功!"));
            model.addFlashAttribute("tip","欢迎您,登入成功!");
            return new RedirectView("success");
        }
//        model.addAllAttributes(Map.of("tip","账号或者密码错误!"));
        model.addFlashAttribute("tip","账号或者密码错误!");
        return new RedirectView("error");
    }
    @GetMapping("/success")
    public String success(@ModelAttribute("tip") String tip)
    {
        System.out.println(tip);
        return "success";
    }
    @GetMapping("/error")
    public String error(@ModelAttribute("tip") String tip)
    {
        System.out.println(tip);
        return "error";
    }
 }

通过上面代码可以看到,重定向中用到的model是RedirectAttributes 而不是Model,其实RedirectAttributes 是Mdel的子接口,重定向中用Model无法准确传输数据,SpringMVC会将Model中的数据以HTTP请求参数的方式传递,那么就要求Model中的value的类型必须为String并且这样做会很不安全,为了解决这个问题就引入了RedirectAttributes 。
获取RedirectAttributes 中的数据:
java程序获取RedirectAttributes 中的数据很简单只需要在方法参数前用@ModelAttribute(“xxxx”)修饰就可以,这个参数就代表了RedirectAttributes 中指定的数据。
jsp中获取RedirectAttributes 中的数据和获取Model数据一样,用EL或者JSTL表达式即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值