在学习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")

最新文章

  1. Json_异常_net.sf.json.JSONException: JSONObject["solution"] not found.
  2. 切换npm源
  3. swift错误和异常处理
  4. Bag-of-words模型
  5. 每日英语:What To Expect To Wear When You're Expecting
  6. xenomai安装
  7. C++STL之map的基本操作
  8. Nico Game Studio 1.基本UI和地图编辑基础功能
  9. poj1006 ( hdu1370 ):中国剩余定理裸题
  10. NOIP2016提高组初赛(1)
  11. opensslBIO系列之2---BIO结构和BIO相关文件介绍
  12. 使用Quartz 2D擦除图片
  13. Python Flask Restful
  14. /proc/diskstats
  15. ADB文件及文件夹操作
  16. 如何通过Git GUI将自己本地的项目上传至Github(转)
  17. vcf文件(call variants得来的)怎么看变异是纯合还是杂合的
  18. JavaScript 空间分析库——JSTS和Turf【转】
  19. php 执行命令函数
  20. 【C】——利用sigsuspend函数等待信号阻塞进程

热门文章

  1. 32、Differential Gene Expression using RNA-Seq (Workflow)
  2. 【mybatis 的foreach的用法】
  3. Loadrunner监控服务器资源
  4. C++基础之数据类型和表达式
  5. jmeter-逻辑控制器之 交替控制器(实现2个请求每次只执行其中一个)
  6. IDEA的database插件无法链接mysql的解决办法(08001错误)
  7. web版聊天框
  8. thinkphp5.1 使用第三方扩展类库
  9. 关于json_encode和json_decode
  10. 2、kvm基础常用命令操作