ModelAttribute和RedirectAttribute用法

目录

ModelAttribute用法

一:标注在方法上

二:标注在方法的参数上

重定向传参RedirectAttributes 

 一 : 拼接到url上

 二 : 放入session中


ModelAttribute用法

 

一:标注在方法上

controller中的每个方法访问时都会首先执行标有ModelAttribute注解的方法,并把方法返回值放入request域中

二:标注在方法的参数上

用来通过名称对应,把相应名称的值绑定到注解的参数bean上

要绑定的值来源于:

A) @SessionAttributes 启用的attribute 对象上;

B) @ModelAttribute 用于方法上时指定的model对象;

C) 上述两种情况都没有时,new一个需要绑定的bean对象,然后把request中按名称对应的方式把值绑定到bean中。

测试代码:

重定向传参RedirectAttributes 

 一 : 拼接到url上

  • 放入了request域中,会自动拼接到url上,地址栏 可以看到

          redirectAttributes.addAttribute("param1", "msg1");

  • 也可以自己直接拼入地址栏

          return "redirect:/hello/getUiModel?param2=msg2";

 二 : 放入session中

  • 放入了session中,地址栏看不到 

      redirectAttributes.addFlashAttribute("user", user);

 也可以自己放入session中

 

 

@Controller
@RequestMapping("/hello")
public class HelloController {
    @ModelAttribute
    public User sendRedirect() {
        User user = new User();
        user.setAge("23");
        user.setUserName("ljj");
        return user;
    }


    @RequestMapping("/sendRedirect")
    public String sendRedirect(RedirectAttributes model, HttpServletResponse response) throws ServletException, IOException {
        model.addAttribute("param1", "msg1");//放入了request域中,会自动拼接到url上,地址栏可以看
        model.addFlashAttribute("user", user);//放入了session中,地址栏看不到
        return "redirect:/hello/getUiModel?param2=msg2";//也可以自己直接拼入地址栏
    }

    //返回界面
    @RequestMapping("/getUiModel")
    public String getUiModel(HttpServletRequest request, @ModelAttribute("user") User user, String param1, String param2) {
        System.out.println("param1=" + param1);
        System.out.println("param2=" + param2);
        System.out.println("userName" + user.getUserName());
        request.setAttribute("user", "师姐");
        return "forward:/welcome.jsp";
    }
}

 

 


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值