@Controller控制层
@Service业务逻辑层
@Repository持久层(也就是dao层)
@Entity实体
@PathVariable
@RequestParam
@RequestMapping
@Autowired
@SuppressWarning废弃警告
@ModelAttribute注释的值在此Controller中每个方法执行前被执行,因此对于一个Controller映射多个URL的用法来说需谨慎使用(此注释的value值就是Model的属性的名称)
@SessionAttributes作用就是在Controller中共享Model属性
public String test1(@ModelAttribute("user") UserModel user) 只是此处多了一个注解@ModelAttribute("user"), 它的作用是将该绑定的命令对象以“user”为名称
@ModelAttribute可以在方法上使用和在方法参数上使用还有方法和参数上同时使用
(1)方法参数上使用 @requestMapping("b") public String add(@ModelAttribute "a"){ return "result"; } 会先从model中获取key为a的对象,如果获取不到就反射实例化一个对象
(2)方法上使用 @ModelAttribute("user2") public User addUser(User user){ user.setName("meihf"); return user; } 这样的话在Controller中使用@RequestMapping方法前都会执行这个方法,而且会添加两个对象到Model先添加key为user的对象,再添加key为user1的对象
(3)在方法和方法参数上都有 @ModelAttribute("user1") public User addUser(User user) { return new User(520,"I love U"); } @RequestMapping("/save") public String save(@ModelAttribute User user) { user.setUsername("U love me"); userService.save(user); return "result"; } 假设要执行保存用户操作,根据一分析可知,先执行完会产生两个User类型的对象(一个key是"user",另一个key是"user1")添加到model, 再执行save方法,此时会先从model去找key为"user"的对象,能找到再从request取值set到这个User对象.最后返回到jsp页面,model里也只有两个User类型对象.
@Controller @RequestMapping("user") @SessionAttributes("test") public class UserController { @RequestMapping(value = "test1") public String test1(HttpServletRequest request) { User user = new User("xiejx618"); request.getSession().setAttribute("test",user); return "user/list"; } @RequestMapping(value = "test2") public String test2(@ModelAttribute("test") User user,SessionStatus sessionStatus) { System.out.println(user.getUsername()); sessionStatus.setComplete(); return "user/list"; } } Session 属性的 controller 上加上 @SessionAttributes,然后在 action 需要的 User 参数上加上 @ModelAttribute,并保证两者的属性名称一致。 SpringMVC 就会自动将 @SessionAttributes 定义的属性注入到 ModelMap 对象, 使用这种方案,还需要在 SpringMVC 配置文件的 ViewResolver 定义处
![搜索](http://img.baidu.com/img/iknow/qb/select-search.png)
, 加上 p:allowSessionOverride="true"
@Controller public class GameController { @Autowired public void setGameService(GameService gameService) { this.gameService = gameService; } @RequestMapping("{level}/ShowPrize") public String getPrizeByLevel(@PathVariable int level,HttpServletRequest request){ System.out.println(level+"Controller"); int prize=gameService.getPrizeByLevel(level); request.setAttribute("prize",prize); return "ShowPrize"; } } 重点讲一下PathVariable和RequestParam: 他们都有共同的特点像上面没有指明参数的时候PV会默认从url中找与变量名同名的值,RP是从request请求中寻找:完整的应是:@PathVariable("level") int level如果方法参数的名称跟RequestMapping中定义的访问路径中的变量名不一样,或者我要利用PathVariable明确指定后面接的方法参数是对应于URL中的哪个变量就应该这样表示。
相关推荐
SPRINGMVC 注解范例程序
springmvc注解简单实例,本例子从dao层service层controller层,层层采用注解形式,层层调用,紧密相连,通过这个简单的例子我相信大家会对springmvc又一个整体大概的了解
springMVC注解+ security + redis 简单的实例,提供大家学习。springMVC注解+ security + redis 简单的实例,提供大家学习。
springmvc注解版每句话都有注释的,希望对你入门有点帮助。记得以前在csdn下载别人的源码要的积分又多,而且还运行不了。所以我上传的源码都会测一遍的,百分之百能跑起来。
springMVC 注解模式 完整事例 小例子 完整的小例子 放在eclipse或者myeclipse就直接可以运行的 包含简单的增删改查 上传文件 导出excle等小功能 登录验证等 简单实用 初学者首选
SpringMVC注解驱动的控制器详解,具体效果与过程看博文 http://blog.csdn.net/evankaka/article/details/45562951
SpringMVC 注解和非注解demo。有关注解方式和非注解方式的讲解和demo
资源是springMVC注解和非注解两个版本
SpringMVC注解@RequestParam全面解析
springmvc注解模式 实例 增删改查 导出 上传 地图 里面有完整的增删改查的实例 上传功能 导出excle表功能 各种echarts 的地图的实例
springmvc常用注解标签详解,总结,常用注解,标签详解,springmvc
03springmvc注解驱动开发的servlet3.0初始化配置类.avi
该文档是关于SpringMVC注解开发的详解,如:@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@...
SpringMVC 常用注解类,视频讲解,带课程文档。SpringMVC 常用注解类
文档详细的解释了springmvc,有springmvc的配置及注解详解
springMVC注解开发代码
springmvc: springmvc学习笔记--springmvc注解开发.zip
个人整理的很好的springmvc注解实现用户注册功能。方便扩展其他功能
springmvc注解式控制器的数据验证、类型转换及格式化 SpringMVC数据验证 参数传递