我是靠谱客的博主 花痴彩虹,最近开发中收集的这篇文章主要介绍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";
}
}

 

 


 

最后

以上就是花痴彩虹为你收集整理的ModelAttribute和RedirectAttribute用法的全部内容,希望文章能够帮你解决ModelAttribute和RedirectAttribute用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部