测试开发进阶——spring boot——MVC——get访问——使用@RequestParam获取参数(参数个数一致)

摘要:
username=lisi&user_Age=12&score=45.6 Web访问:如果没有注释,HTTP参数和控制器参数名称必须一致。如果HTTP参数与控制器参数不一致,我们需要将前端参数映射到后端参数。这里我们使用@RequestParam来确定前端和后端参数名称之间的映射关系。在该方法中,我们接收前端的用户名和用户_年龄和分数,然后使用@RequestParam注释将它们映射到name、Age和Age。如果URL中用户名后的值为空,则页面可以正常跳转以测试URLhttp://localhost:8080/param/requestparam?username=&user_age=12&score=45.6如果我们添加user_如果年龄或分数值设置为空,页面将报告与没有注释的页面相同的错误。这里不再解释。

控制器:

package com.awaimai.web;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
public class kzq
{
    /**
     * 使用@RequestParam获取参数
     * 这里RequestParam注解会将括号里面的前端参数名称转化为后面的参数名称
     * @param name String 姓名,接收前端username参数
     * @param age int 年龄,接收前端user_age参数
     * @param score double 分数,接收前端score参数
     * @return 响应json字符
     */
    @RequestMapping("/param/requestparam")
    @ResponseBody
    public Map<String, Object> requestParam(@RequestParam("username") String name, @RequestParam("user_age") int age, @RequestParam("score") double score)
    {
        Map<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put("name", name);
        paramMap.put("age", age);
        paramMap.put("score", score);
        return paramMap;
    }







    /**
     * 无注解获取参数时,参数名称和HTTP请求参数必须一致
     * @param name String 姓名
     * @param age int 年龄
     * @param score double 分数
     * @return 响应json字符-@ResponseBody注解将map转为json
     */
    @RequestMapping("/param/noannotation")
    @ResponseBody
    public Map<String, Object> noAnnotation(String name, int age, double score) {
        Map<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put("name", name);
        paramMap.put("age", age);
        paramMap.put("score", score);
        return paramMap;
    }



@RequestMapping("/123") public String testweb01() { return "abc"; }


@RequestMapping("/1234") public String testweb02() { return "123abc"; } }

  

URL:  http://localhost:8080/param/requestparam?username=lisi&user_age=12&score=45.6

web访问:

测试开发进阶——spring boot——MVC——get访问——使用@RequestParam获取参数(参数个数一致)第1张

无注解情况下,HTTP参数与控制器参数名称必须一致。

若HTTP参数与控制器参数不一致时,我们就需要将前端参数与后端参数对应起来,这里我们使用@RequestParam来确定前后端参数名称的映射关系。

方法中,我们接收前端的username,user_age和score,然后使用@RequestParam注解将其转化映射为name,age和age。

如果将URL中username后面值置空,页面可以正常跳转,测试URL

http://localhost:8080/param/requestparam?username=&user_age=12&score=45.6

测试开发进阶——spring boot——MVC——get访问——使用@RequestParam获取参数(参数个数一致)第2张

若我们将user_age 或 score值置空,则页面会报错

测试开发进阶——spring boot——MVC——get访问——使用@RequestParam获取参数(参数个数一致)第3张

与无注解时错误相同,这里不做解释了。

如果我们删除掉URL栏里面username参数项,URL为 http://localhost:8080/param/requestparam?user_age=12&score=45.6

页面无法正常跳转,报错如下

测试开发进阶——spring boot——MVC——get访问——使用@RequestParam获取参数(参数个数一致)第4张

免责声明:文章转载自《测试开发进阶——spring boot——MVC——get访问——使用@RequestParam获取参数(参数个数一致)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WPF中引入外部资源WCF学习笔记1(体系架构和行为扩展)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【翻译】Flink Table API &amp;amp; SQL 自定义 Source &amp;amp; Sink

本文翻译自官网:https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/table/sourceSinks.html TableSource 提供访问存储在外部系统(数据库、key-value 存款,消息队列)或文件中的数据的权限。TableSource 在 TableEnviron...

springboot&amp;amp;layedit 上传文件,配置静态资源文件,存放磁盘其他目录

配置文件配置存放路径 upload-path=D:/upimages/ 表单页面 layedit.set({ uploadImage: { url: '/manage/upload' //接口url ,type: 'post' //默认post...

带中文的字符串截取

最近在页面展示的时候遇到这样的场景,文字有可能超长,却又不允许换行。 当然,可以用高超的css来搞定。但如果你想要让多余的文字用“...”来代替,并且要兼容很多浏览器,这种时候用css也会很头疼吧。 1.C#对中文字符串的截取 与英文字符相比,我们把中文字符按两个占位来计算,对于带中文的字符串截取,要面临两个问题: 1.无法截取半个中文字符; 2.对于除...

springboot实现redis的分布式锁

文章目录 1.redis的应用场景 2.redis的分布式锁 3.通过redisson框架实现redis分布式锁 1.redis的应用场景 商品秒杀 点赞等 现在有一个减少商品的场景,我们很容易能写出其代码 @Controller @ResponseBody public class Test { @Autowired priv...

JDBC数据类型、Java数据类型、标准sql类型

本概述是从《JDBCTM Database Access from JavaTM: A Tutorial and Annotated Reference》这本书中摘引来的。JavaSoft 目前正在准备这本书。这本书是一本教程,同时也是 JDBC 的重要参考手册,它将作为 Java 系列的组成部份,在 1997 年春季由 Addison-Wesley 出版...

java8中List根据某一字段去重

实体类: package test; public class User { private String userid; private String username; private String age; private String address; public User(String use...