`
wiselyman
  • 浏览: 2081378 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:81131
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:130152
社区版块
存档分类
最新评论

02点睛Spring MVC 4.1-@RequestMapping

 
阅读更多

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()+" 可以访问此方法";

    }




}

新书推荐《JavaEE开发的颠覆者: Spring Boot实战》,涵盖Spring 4.x、Spring MVC 4.x、Spring Boot企业开发实战。

 

京东地址:http://item.jd.com/11894632.html

当当地址:http://product.dangdang.com/23926195.html

亚马逊地址:http://www.amazon.cn/图书/dp/B01D5ZBFUK/ref=zg_bsnr_663834051_6 

淘宝地址:https://item.taobao.com/item.htm?id=528426235744&ns=1&abbucket=8#detail

 

 

 

或自己在京东、淘宝、亚马逊、当当、互动出版社搜索自选。

 


0
0
分享到:
评论
1 楼 longzhiwuing 2017-03-10  
我买了你的springboot的书,但是源码有一个地方没跑通。DemoObj中属性为id时,用springmvc无法映射该属性,映射路径http://.../test/pass?id=123&name=wyf,id换成别的名字,比如did这种,123和wyf都能获取到?我想问的是在pojo类里不能用属性名为id的名称吗?和什么有冲突吗?希望能够解答

相关推荐

Global site tag (gtag.js) - Google Analytics