2 @RequestMapping
2016-03-10 11:43
197 查看
本文为转载,原创地址: http://wiselyman.iteye.com/blog/2213907
2.1 @RequestMapping
@RequestMapping是SpringMVC的核心注解,负责访问的url与调用方法之间的映射;@RequestMapping可以放在类和方法上;
@RequestMapping的属性produces属性控制response返回的形式;
@RequestMapping的属性method属性控制接受访问的类型,不写不做限制,本例为演示方便全部都是get请求;
@ResponseBody(放在方法上或者返回值类型前)将方法参数放置在web body的body中(返回的不是页面而是你所控制的字符)
@RequestBody(放在方法参数前)将方法参数放置在web request的body中(如提交一个json对象作为参数-在
03点睛Spring MVC 4.1-REST演示)
produces的内容是指定返回的媒体类型让浏览器识别
如返回text/plain的话,chrome浏览器下network显示Response的
Content-Type:text/plain;
如返回application/json的话,chrome浏览器下network显示Response的
application/json;
因本节无页面,在
03点睛Spring MVC 4.1-REST有只管的阐述和演示;
这节使用@RequestMapping演示常用映射场景
2.2 演示
传值对象package com.wisely.web; public class DemoObj { private Long id; private String name; public DemoObj() { super(); } public DemoObj(Long id, String name) { super(); this.id = id; this.name = name; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
控制器
TestController
package com.wisely.web; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller //声明为控制器bean @RequestMapping("/test")// 根地址为http://localhost:8080/testSpringMVC/test public class TestController { //response媒体类型(MediaType)为text/plain,编码是utf-8 @RequestMapping(produces = "text/plain;charset=UTF-8") //映射地址为http://localhost:8080/testSpringMVC/test @ResponseBody //此注解让返回值不是页面,也是将结果字符串直接返回 public String root(HttpServletRequest request){ return "url:"+request.getRequestURL()+" 可以访问此方法"; } @RequestMapping(value = "/add",produces = "text/plain;charset=UTF-8") //映射地址为http://localhost:8080/testSpringMVC/test/add @ResponseBody public String add(HttpServletRequest request){ return "url:"+request.getRequestURL()+" 可以访问此方法"; } @RequestMapping(value = {"/remove","/delete"},produces = "text/plain;charset=UTF-8") //映射地址为http://.../test/remove(或http://.../test/delete) @ResponseBody public String remove(HttpServletRequest request){ return "url:"+request.getRequestURL()+" 可以访问此方法"; } //获取request参数 //获取路径参数 @RequestMapping(value = "/get",produces = "text/plain;charset=UTF-8") //映射路径http://.../test/get?id=123 @ResponseBody public String passRequestParam(@RequestParam Long id,HttpServletRequest request){ System.out.println("id为"+id); return "url:"+request.getRequestURL()+" 可以访问此方法"; } //获取路径参数 @RequestMapping(value = "/{id}",produces = "text/plain;charset=UTF-8") //映射路径http://.../test/123 @ResponseBody public String passPathVariable(@PathVariable Long id,HttpServletRequest request){ System.out.println("id为"+id); return "url:"+request.getRequestURL()+" 可以访问此方法"; } //获得对象 @RequestMapping(value = "/pass",produces = "text/plain;charset=UTF-8") //映射路径http://.../test/pass?id=123&name=wyf @ResponseBody public String passObj(DemoObj obj,HttpServletRequest request){ System.out.println("对象的id和名称分别为为:"+obj.getId()+"/"+obj.getName()); return "url:"+request.getRequestURL()+" 可以访问此方法"; } }
相关文章推荐
- 移动端H5页面高清多屏适配方案(经典)
- 移动端、手机网站中文输入法下keyup事件部分按键无效
- android基础开发之scrollview
- Android ViewGroup事件分发机制
- android提交GIT .gitignore过滤文件配置信息
- Android类库打包方法探究
- [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
- 解决ios下的微信打开的页面背景音乐无法自动播放
- iOS-关于@property和@synthesize
- 雅思听听app
- Xcode 如何修改APP的名称
- ios开发--多台电脑共用一个开发证书的方法
- Android设备连接Unity Profiler性能分析器
- cocos2d-x 3.10 安卓 屏幕适配
- Android系统设置— android.provider.Settings
- 设计模式_单例模式
- iOS Client 与WebSocket 通信(一)
- Android中实时视频传输(摄像头实时视频传输)解决方案<二>
- ios html5 网页取消默认样式
- cocos2d-x之猜数字游戏