在学习controller的时候,测试了在RequestMapping中,value参数中配置集合,实现不同的URL访问同一方法。

本章继续学习和测试RequestMapping的其他特性。

一.PathVariabe获取URL参数,代码如下:

package com.yy.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; /**
* Created by Administrator on 2018-05-18.
*/
@RestController
//@Controller
public class HelloController {
@RequestMapping(value = "/hello1",method= RequestMethod.GET)
public String sayHello1()
{
String hello="index";
return hello;
}
@ResponseBody
@RequestMapping(value = {"/hello2","/index2"},method= RequestMethod.GET)
public String sayHello2()
{
String hello="index"; return hello;
} @RequestMapping(value = "/hello3",method= RequestMethod.GET)
public ModelAndView sayHello3()
{
ModelAndView mv = new ModelAndView("index");
return mv;
}
// URL参数
@RequestMapping(value = "/hello4/{name}",method= RequestMethod.GET)
public String sayHello4(@PathVariable("name") String name )
{
String str=name;
return str;
} }

启动应用,访问URL:http://localhost:8088/sptest/hello4/lilei,则方法sayHello4获取的name参数值为lilei,方法返回name值,则显示如下:

二.使用@RequestMapping给整个类指定URL映射

package com.yy.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; /**
* Created by Administrator on 2018-05-18.
*/
@RestController
//@Controller
@RequestMapping(value="my")
public class HelloController {
@RequestMapping(value = "/hello1",method= RequestMethod.GET)
public String sayHello1()
{
String hello="index";
return hello;
}
@ResponseBody
@RequestMapping(value = {"/hello2","/index2"},method= RequestMethod.GET)
public String sayHello2()
{
String hello="index"; return hello;
} @RequestMapping(value = "/hello3",method= RequestMethod.GET)
public ModelAndView sayHello3()
{
ModelAndView mv = new ModelAndView("index");
return mv;
}
// URL参数
@RequestMapping(value = "/hello4/{name}",method= RequestMethod.GET)
public String sayHello4(@PathVariable("name") String name )
{
String str=name;
return str;
} }

其他不变,给HelloController类添加@RequestMapping注解。启动应用访问URL:

三.按照传统方式Url+"?name=lilei"传递参数

 //传统URL参数
@RequestMapping(value = "/hello5",method= RequestMethod.GET)
public String sayHello5(@RequestParam(value="name",required = false,defaultValue = "james") String name )
{
String str=name;
return str;
}

获取参数使用@RequestParam,其中value值为url中参数的名称;required默认为true,表示参数必须,此处修改为false;defaultValue为该参数默认值,如果url中没有为该参数指定值,则使用该默认值,如果参数已传递,则用获取的参数值覆盖该默认值。

用如下URL访问:http://localhost:8088/sptest/my/hello5/?name=chole,显示如下:

四.使用GetMapping代替RequestMapping

其他不变,将上面代码中的sayHello5注解改为@GetMapping(value = "/hello5")

构建第一个Spring Boot2.0应用之RequestMapping(四)的更多相关文章

  1. 构建第一个Spring Boot2.0应用之项目创建(一)

     1.开发环境 IDE: JAVA环境: Tomcat: 2.使用Idea生成spring boot项目 以下是使用Idea生成基本的spring boot的步骤. (1)创建工程第一步 (2)创建工 ...

  2. 构建第一个Spring Boot2.0应用之集成mybatis(六)

    一.环境: IDE:IntelliJ IDEA 2017.1.1 JDK:1.8.0_161 Maven:3.3.9 springboot:2.0.2.RELEASE 二.步骤 方式一:利用配置文件配 ...

  3. 构建第一个Spring Boot2.0应用之application.properties和application.yml(八)

    本节学习在项目中配置文件配置的方式,一种是通过applicaiton.properties,一种是通过application.yml方式. 一.环境: IDE:IntelliJ IDEA 2017.1 ...

  4. 构建第一个Spring Boot2.0应用之集成mybatis、Druid(七)

    一.环境: IDE:IntelliJ IDEA 2017.1.1 JDK:1.8.0_161 Maven:3.3.9 springboot:2.0.2.RELEASE 二.说明:      本文综合之 ...

  5. 构建第一个Spring Boot2.0应用之集成dubbo上---环境搭建(九)

    一.环境: Windows: IDE:IntelliJ IDEA 2017.1.1 JDK:1.8.0_161 Maven:3.3.9 springboot:2.0.2.RELEASE Linux(C ...

  6. 构建第一个spring boot2.0应用之项目启动运行的几种方式(二)

    方法一. 配置Run/Debug Configuration  选择Main Class为项目 Application启动类(入口main方法) (2).进行项目目录,即包含pom.xml的目录下,启 ...

  7. 构建第一个Spring Boot2.0应用之Controller(三)

    Controller控制器主要是接收浏览器请求.下面说一说@Controller注解和@RestController的区别: (1)@Controller类中的方法可以直接通过返回String跳转到j ...

  8. 快速搭建spring boot2.0 项目

    快速搭建spring boot2.0+mybatis+thymeleaf 项目 使用工具STS 3.9.7(eclipse) 首先创建一个spring boot2.0项目(具体创建方法就不写了) 然后 ...

  9. spring boot2.0(一 ) 基础环境搭建

    1.基础配置 开发环境:window jdk版本:1.8(spring boot2.0最低要求1.8) 开发工具:eclipse 构建方式:maven3 2.POM配置文件 <project x ...

随机推荐

  1. 项目一:第五天 1、区域数据(pinyin4j-简码,城市编码) 2、Web层代码重构(model对象,分页代码提取) 3、区域分页查询 3、分区添加功能 4、定区管理管理-添加,分页

    Service: /** * @Description: 1.保存定区  2.让分区关联定区 * 对象三种状态 1.持久态(被session管理对象-一级缓存中有对象) 2.托管态(有OID标识,数据 ...

  2. vmware克隆Centos网卡修改方法

    vmware克隆Centos网卡修改方法 1,查看网卡信息,获得eth编号和MAC地址 # dmesg | grep eth  e1000 0000:02:00.0:eth0:(PCI:66MHz:3 ...

  3. c#事件1

    Private void button_clicked( object sender ,RouteEventArgs e) sender :引发事件的对象 源 e :      路由事件,提供可能重要 ...

  4. JavaScript -- 常用的数组及字符串方法

    数组 var arr= new Array(); arr.push(); //在数组尾部添加一个元素,返回新的长度 *原数组发生变化 arr.pop(); //删除最后一个元素,返回的是被删除的元素 ...

  5. 51nod1064(Bash博弈)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1067 题意:中文题诶~ 思路:直接规律就好了... 代码: ...

  6. 清北刷题冲刺 10-29 p.m

    洗澡 /* 这个题不能单纯判断左括号和右括号的多少,而应该从左到右扫一遍,看应该如何配对 */ #include<iostream> #include<cstdio> #inc ...

  7. 008-数据类型(Dictionary)

    数据类型(Dictionary) 一.定义 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括 ...

  8. python基本数据类型练习

    一.元素分类# 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中.# 即 ...

  9. PDO中构建事务处理的应用程序

    <meta http-equiv="Content-Type" content="text/html";charse="utf-8" ...

  10. CF E .Tree with Small Distances(树上的贪心)

    题意: 这是一颗有n-1条边的无向树 , 在树上加最少的边使树的1节点到其他节点的距离最多为 2 : 分析:很容易考虑的贪心的做法,但是该如何的贪心呢 ? 我一开始是打算贪心节点的儿子最多那一个 , ...