Springmvc @ModelAttribute和@SessionAttribute的区别
来源:互联网 发布:c#泛型和数组 编辑:程序博客网 时间:2024/06/05 19:21
1.@ModelAttribute
a.注解在方法上
注解在方法上的 @ModelAttribute 说明了方法的作用是用于添加一个或多个属性到model上。这样的方法能接受与 @RequestMapping 注解相同的参数类型,只不过不能直接被映射到具体的请求上。在同一个控制器中,注解了@ModelAttribute的方法实际上会在@RequestMapping 方法之前被调用
@ModelAttributepublic Account addAccount(@RequestParam String number) {return accountManager.findAccount(number);}// Add multiple attributes@ModelAttributepublic void populateModel(@RequestParam String number, Model model) {model.addAttribute(accountManager.findAccount(number));// add more ...}
在第一种写法中,方法通过返回值的方式默认地将添加一个属性;在第二种写法中,方法接收一个 Model 对象,然后可以向其中添加任意数量的属性
b.注解在参数上
注解在方法参数上的 @ModelAttribute 说明了该方法参数的值将由model中取得。如果model
中找不到,那么该参数会先被实例化,然后被添加到model中。在model中存在以后,请求中
所有名称匹配的参数都会填充到该参数中
@RequestMapping(path = "/owners/{ownerId}/pets/{petId}/edit", method = RequestMethod.POST)public String processSubmit(@ModelAttribute Pet pet) { }
2.@SessionAttributes
@SessionAttributes用来标注那些数据可以通过Session来管理(其实也可以用作http请求之间转换时,数据的存储)
@SessionAttributes允许通过两种方法来管理将那些数据存进session中,一种通过类型,一种是通过属性名称
例如:
通过属性名称来吧数据存储到session中
@Controller@RequestMapping("/reportSetting.anno")@SessionAttributes(names="command")public class ReportSettingAnnotationController {public final static String FROM_VIEW_NAME = "anno/reportSetting"; @Autowiredprivate IReportSettingManager reportSettingManager;@RequestMapping(method=RequestMethod.GET)public String displayReportSettings(ModelMap model){ReportSetting reportSettings = getReportSettingManager().getReportSettings();model.addAttribute("command", reportSettings);}public String updateReportSetting(@ModelAttribute("command")ReportSetting reportSettings,BindingResult result,SessionStatus status){if(result.hasErrors()){return FROM_VIEW_NAME;}getReportSettingManager().updateReportSettings(reportSettings);status.setComplete(); //表示将使用完的数据清理出sessionreturn "redirect:reportSetting.anno";}}
通过类型把数据存储到session中
@SessionAttributes(types=ReportSetting.class)
阅读全文
0 0
- Springmvc @ModelAttribute和@SessionAttribute的区别
- springmvc注解之@SessionAttribute和@ModelAttribute
- @SessionAttribute和@ModelAttribute详解
- Spring MVC下的SessionAttribute和ModelAttribute使用分析
- ModelAttribute,SessionAttribute
- @ModelAndView和@ModelAttribute的区别
- springMVC session的应用@SessionAttributes和@ModelAttribute
- springMVC session的应用@SessionAttributes和@ModelAttribute
- springMVC session的应用@SessionAttributes和@ModelAttribute
- springmvc @SessionAttributes和@ModelAttribute的正确使用
- SpringMVC的@SessionAttributes和@ModelAttribute用法
- @ModelAttribute注解和SpringMVC表单modelAttribute属性
- springmvc的ModelAttribute注解
- springmvc @ModelAttribute的使用
- springmvc的ModelAttribute注解
- springmvc的ModelAttribute注解
- SpringMVC @ModelAttribute 的使用
- springmvc的ModelAttribute注解
- libsvm支持向量机工具箱在MATLAB中的安装与使用
- Android中自定义下拉样式Spinner
- Java中的单例设计模式Singleton
- mybatis实现增删改查的工具类
- klocwork insight V12 12.x v11.x v10.x安装过程
- Springmvc @ModelAttribute和@SessionAttribute的区别
- 演练:创建和使用动态链接库 (C++)
- 重新格式化HDFS的方法
- MINA、Netty、Twisted一起学异步系列
- Linux目录结构
- 那些年我们在python掉进的坑系列之一pandas的to_sql
- 一套PHP做app接口的解决方案
- 网络共享遇到系统错误1219 “不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接。中断与此服务器或共享资源的所有连接,然后再试一次。”
- 关于网页左右留出空白