3.Spring MVC 4.1-@RequestMapping

翻译 2015年11月19日 21:18:34

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

相关文章推荐

Spring MVC 学习3:@RequestMapping注解和REST

一:RequestMapping修饰类 Spring MVC使用@RequestMapping注解为控制器指定可以处理那些URL请求。 @RequestMapping既可以修饰方法也可修饰类。 既修...

Spring MVC--2.@RequestMapping 映射请求

  • 2017年02月08日 14:05
  • 3.84MB
  • 下载

Spring MVC 学习总结(二)——控制器定义与@RequestMapping详解

 目录 一、控制器定义 1.1、实现接口Controller定义控制器1.2、使用注解@Controller定义控制器  二、@RequestMapping详解 2.1、...

[error handle][java web]Spring MVC在类上使用@RequestMapping后对静态资源的访问问题

REASON我写的LoginController中对类和方法各有一级映射, 如以下访问时路径为http://localhost:8080/lsqz/login/individualLogin.do ...

Spring MVC 学习手记(2)- @RequestMapping注解

1. @RequestMapping 可修饰 类、方法 来映射请求的URL示例:@Controller @RequestMapping(value = "/springmvc") public cla...

Spring MVC-Controller和@RequestMapping ModelAndView配置和用法-restful风格

Spring3系列13-Controller和@RequestMapping   Controller返回值,String或者ModelAndView @RequestMapping关联url ...

Spring MVC中@RequestMapping 6个基本用法小结

小结下spring mvc中的@RequestMapping的用法。  1)最基本的,方法级别上应用,例如:      Java代码   @RequestMapping(value="/d...

Spring MVC 之@Controller@RequestMapping详解

一:配置web.xml       1)问题:spring项目中有多个配置文件mvc.xml   dao.xml       2)解决:在web.xml中                  ...

Spring MVC 04 - @Controller,@RequestMapping

我们承接上一篇继续解说。 在上一篇,我们在没有使用annotation的情况下,实现在浏览器打印“Hi, this is first spring mvc application”,这里我们使用@Co...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3.Spring MVC 4.1-@RequestMapping
举报原因:
原因补充:

(最多只允许输入30个字)