"页面跳转"实例详解"SpringMVC注解"的作用与用法
来源:互联网 发布:美国国籍 知乎 编辑:程序博客网 时间:2024/06/09 14:20
SpringMVC中常常需要有页面之间的跳转操作,
本文旨在,不懂的扫盲,懂得的巩固(其实是我自己怕忘了,doge脸…)
直接上个例子,在注释里解释吧
ps.例中的解释,多为网上释意加本人见解,本人文笔一般实在不好意思,若是不好理解,请自行详细搜索.
ps.例子中的一些跳转操作等,需要使用上下文配置文件才可以
(Maven管理,SpringMVC+Spring+Mybatis环境整合,http://blog.csdn.net/peng_666666/article/details/77416780)这是我的一篇搭建SSM环境的博文,其中包括Spring例子的上下文配置,供大家参考
//假设所有包都已经import@Controller//设置一个根路径,该类中的网页映射都是以此为根路径@RequestMapping("/example")public class Controller { //本方法将处理 /example/view1?id=123 形式的URL /* @RequestMapping(),参数value不多说吧,就相当于映射的网址 参数method,其包括GET、POST、PUT、DELETE等 */ @RequestMapping(value="/view1", method=RequestMethod.GET) /* 这是经常使用的接收Parameter的方法之一, 如同通过Request.getParameter()获取的String一样,可直接转换为简单类型(String与其它简单类型的转换操作由ConversionService配置的转换器来完成); 也正是使用了request.getParameter()方式获取参数, 所以可以处理Get方式中queryString的值,也可以处理Post方式中body data的值 */ public String viewId1(@RequestParam("id") Integer id, Model model) { /* 一般这里会使用"id"来进行查询之类的操作, 然后再用addAttribute()方法操作,这里我就假装操作过啦 */ model.addAttribute(id); //字符串中就是"你的配置文件中的指定目录为根目录,再输入你需要访问网页的文件路径" return "view1"; } //本方法将处理 /example/view2?id=123 形式的URL @RequestMapping("/view2") /* HttpServletRequest,学servlet时候的老朋友,我就不介绍了 */ public String viewId2(HttpServletRequest request) { //这里是先取得request中的id Integer id = Integer.valueOf(request.getParameter("id")); /* 一般这里会使用"id"来进行查询之类的操作, 然后再用setAttribute()方法操作,这里我就假装操作过啦 */ request.setAttribute("id",id); return "view2"; } //本方法将处理 /example/view3/123 形式的URL @RequestMapping("/view3/{id}") /* 当使用/view3/{id}这种形式时, 这时的id可通过@PathVariable注解绑定它传过来的值到方法的参数上 注意!@PathVariable("")中的参数需要与@RequestMapping("/{}")中的{}中的参数保持对应 */ public String viewId3(@PathVariable("id") Integer id, Map<String, Object> model) { /* 一般这里会使用"id"来进行查询之类的操作, 然后再用addAttribute()方法操作,这里我就假装操作过啦 */ model.put("id",id); return "view3"; } /* 参数params:指定request中必须包含某些参数值是,才让该方法处理. 例中仅处理请求中包含值为"add"的请求; params也可以键值对形式表现,例如"params="key=value",仅处理请求中包含了名为"key",值为"value"的请求; */ @RequestMapping(value="/admin", method=RequestMethod.GET, params="add") public String createId(){ return "createId"; } /* 参数headers:指定request中必须包含某些指定的header值,才能让该方法处理请求 仅处理request的header中包含了指定"Refer"请求头和对应值为"http://csdn.blog.net/"的请求 */ @RequestMapping(value="/admin", method=RequestMethod.GET, headers="Referer=http://csdn.blog.net/") public String delId(){ return "delId"; } @RequestMapping(value="/do1", method=RequestMethod.GET) /* 与上面的@RequestParam()不同,该注解有两个属性:value、required. 'value'用来指定要传入值的id名称,'required'用来指示参数是否必须绑定 参数是否绑定的意思是,当它为false时使用这个注解可以不传这个参数,不报错;它为true时必须传,没传就会报错(默认是true) */ public String do1(@RequestParam(value="id", required=false) Integer id) { return "do1"; } @RequestMapping(value="/do2", method=RequestMethod.POST) /* @ModelAttribute,该注解有两个用法,一个是用于方法上,一个是用于参数上 用于方法上时:通常用来在处理@RequestMapping之前,为请求绑定需要从后台查询的model; 用于参数上时:用来通过名称对应,把相应名称的值绑定到注解的参数bean上.要绑定的值来源于: 1)@SessionAttributes启用的attribute对象上; 2)@ModelAttribute用于方法上时指定的model对象; 3)上述两种情况都没有时,new一个需要绑定的bean对象,然后把request中按名称对应的方式把值绑定到bean中. 简单提一下@SessionAttributes: 该注解用来绑定HttpSession中的attribute对象的值,便于在方法中的参数里使用。 该注解有value、types两个属性,可以通过名字和类型指定要使用的attribute对象; */ public String do2(@ModelAttribute Integer id) { /* redirect是重定向,重转发是forward: */ return "redirect:view3/"+id; } @RequestMapping(value="/{id}",method=RequestMethod.GET) /* @ResponseBody,该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。 什么时候该使用它呢?返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用. @PathVariable, 若方法参数名称和需要绑定中变量名称一致,就不需要在@PathVariable加上参数了(可与上文的@PathVariable对比) */ public @ResponseBody Course getIdInJson(@PathVariable Integer id){ return id; }}
希望能为大家扫到一两个盲点,哈哈
加油,与大家共勉
阅读全文
0 0
- "页面跳转"实例详解"SpringMVC注解"的作用与用法
- SpringMVC注解及实现页面跳转详解
- SpringMVC的页面跳转
- springMVC的注解详解
- SpringMVC详解(三)------基于注解的入门实例
- SpringMVC详解(三)------基于注解的入门实例
- SpringMVC详解(三)------基于注解的入门实例
- SpringMVC详解(三)------基于注解的入门实例
- springmvc跳转页面的方法
- springMVC注解@ModelAttribute的用法
- springMVC的@RequestParam注解用法
- SpringMVC中的requstMapping注解用法详解
- Android_LayoutInflater的作用与用法详解
- Android ViewHolder的作用与用法 详解
- springmvc的@ResponseBody注解的作用。
- SpringMVC 常用的注解详解
- SpringMVC中@ModelAttribute注解的作用
- SpringMVC中各个常用注解的作用
- 管理用户和组账户,passwd字段意义
- QGC地图中2点连线
- JS——面向对象实例
- 马跳日
- 1134. Vertex Cover (25)
- "页面跳转"实例详解"SpringMVC注解"的作用与用法
- iOS 处理二叉树数据 实现多级表格
- Mybatis
- 动态规划——最优二叉查找树
- MYSQL(五)
- shell脚本中 数组的基本用法
- 面向对象-1
- Leetcode题解-5. Longest Palindromic Substring
- HDU 6208 The Dominator of Strings(字符串)