Java---学习(6)
来源:互联网 发布:php namespace use 编辑:程序博客网 时间:2024/04/30 11:36
@ModelAttribute属性和@SessionAttribute属性主要用来在不同控制器和模型之间共享数据.默认情况下,map的信息只是在request当前请求有效,如果想在一个controller中共享数据,可以使用这两个属性。
1.@ModelAttribute
@ModelAttribute可以用在action方法上,也可以用在Controller上,一个Controller中标记@ModelAttribute的方法在其他方法执行前先执行。在调用所有方法之前先执行@ModelAttribute标记的方法
- @Controller
- @RequestMapping(“/User”)
- public class UserController {
- @RequestMapping(value=“userdetail”)
- public String userdetail()
- {
- return “userdetail”;
- }
- @ModelAttribute(“username”)
- public String GetUserName()
- {
- //访问controller之前,先执行@ModelAttribute标记的方法,可以在前台页面访问到共享数据
- return “公用账户”;
- }
- }
@Controller@RequestMapping("/User")public class UserController { @RequestMapping(value="userdetail") public String userdetail() { return "userdetail"; } @ModelAttribute("username") public String GetUserName() { //访问controller之前,先执行@ModelAttribute标记的方法,可以在前台页面访问到共享数据 return "公用账户"; }}可以在前台页面访问到ModelAttribute标记的方法
- <%@ page language=“java” contentType=“text/html; charset=UTF-8”
- pageEncoding=“UTF-8”%>
- <!DOCTYPE html PUBLIC ”-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
- <html>
- <head>
- <meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8”>
- <title>Insert title here</title>
- </head>
- <body>
- ${username}
- </body>
- </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>${username}</body></html>2.@SessionAttributes
使用SessionAttributes可以将map中的信息放置到session中共享,通常情况下SessionAttributes主要标记在controller上,指定哪些信息需要存放到session中,下面的代码我们将id存放到session中
- package com.springfirst.Controller;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.ModelMap;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.SessionAttributes;
- @Controller
- @RequestMapping(“/User”)
- @SessionAttributes(“id”)
- public class UserController {
- @RequestMapping(value=“userdetail”)
- public String userdetail(ModelMap model)
- {
- model.addAttribute(”id”, “0001”);
- return “userdetail”;
- }
- @ModelAttribute(“username”)
- public String GetUserName()
- {
- //访问controller之前,先执行@ModelAttribute标记的方法,可以在前台页面访问到共享数据
- return “公用账户”;
- }
- }
package com.springfirst.Controller;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.SessionAttributes;@Controller@RequestMapping("/User")@SessionAttributes("id")public class UserController { @RequestMapping(value="userdetail") public String userdetail(ModelMap model) { model.addAttribute("id", "0001"); return "userdetail"; } @ModelAttribute("username") public String GetUserName() { //访问controller之前,先执行@ModelAttribute标记的方法,可以在前台页面访问到共享数据 return "公用账户"; }}
区别
1.使用SessionaAttributes标记的属性主要把信息放到session中,主要标记在Controller上
2.使用ModelAttribute标记的主要用在方法上,然后在Action的方法参数里面加上ModelAttribute标记可以访问到
- @RequestMapping(value=“userdetail”)
- public String userdetail(@ModelAttribute(“username”) String name,ModelMap model)
- {
- System.out.print(name);
- model.addAttribute(”id”, “0001”);
- return “userdetail”;
- }
@RequestMapping(value="userdetail") public String userdetail(@ModelAttribute("username") String name,ModelMap model) { System.out.print(name); model.addAttribute("id", "0001"); return "userdetail"; }
阅读全文
0 0
- java学习(6)
- Java---学习(6)
- JAVA基础学习(6)
- java学习笔记(6)
- java学习-基础(6)
- java学习笔记(6)
- 【java】java学习(一)
- 【java】java学习(二)
- Java学习笔记18天---(6)
- 学习《21天学通Java 6》(二)
- JAVA学习笔记(6)字符串
- Java学习笔记(6):事件处理
- Java学习日记(6)--多线程
- 我的java学习日记(6)
- 黑马程序员 -- Java基础学习(6)
- 黑马程序员--java学习总结(6)
- Java基础知识学习。(2015,6,17)
- java基础学习笔记(6)
- 1009. 说反话 (20)
- Mongo数据格式及数据类型
- opencv环境配置
- 【刷题日记】向NOIP2017冲刺!
- HDU--1710--Binary Tree Traversals(二叉树遍历)
- Java---学习(6)
- 51nod 1086 背包问题V2 (巧妙dp,二进制)
- 538. Convert BST to Greater Tree
- 卡尔曼滤波
- Java---学习(7)
- python中hashlib模块
- 链家、CVTE笔试题
- 简单的分布式进程
- POJ 3764:01字典树