关于@RequestParam注解的使用(简单易懂)

目录
  • @RequestParam注解使用
    • 1、作用
    • 2、语法
    • 3、测试环境
    • 4、工程结构
    • 5、业务处理器HelloController.java
    • 6、测试
  • @RequestParam与@Param区别

@RequestParam注解使用

1、作用

@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

2、语法

语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)

  • value:参数名
  • required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
  • defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

3、测试环境

环境:jdk1.8 Tomcat8.5  idea2018  manven父工程子模块

步骤:

1、创建web工程、引入依赖

2、配置SpringMvc入口文件 --DispatcherServlet--为总调度、web.xml里配置

3、创建Springmvc.xml文件--理解为:适配器(这里不需要自已指定适配、springmvc会自动指定)--视图解析器

4、创建 业务处理器 Controller类

5、测试

4、工程结构

步骤1、2、3、参考:SpringMvc入门案例

5、业务处理器HelloController.java

package com.day01springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;

/**
 * @ Author     :ShaoWei Sun.
 * @ Date       :Created in 20:58 2018/11/16
 */
@Controller
@RequestMapping("hello")
public class HelloController2 {

    /**
     * 接收普通请求参数
     * http://localhost:8080/hello/show16?name=linuxsir
     * url参数中的name必须要和@RequestParam("name")一致
     * @return
     */
    @RequestMapping("show16")
    public ModelAndView test16(@RequestParam("name")String name){
        ModelAndView mv = new ModelAndView();
        mv.setViewName("hello2");
        mv.addObject("msg", "接收普通的请求参数:" + name);
        return mv;
    }

    /**
     * 接收普通请求参数
     * http://localhost:8080/hello/show17
     * url中没有name参数不会报错、有就显示出来
     * @return
     */
    @RequestMapping("show17")
    public ModelAndView test17(@RequestParam(value="name",required=false)String name){
        ModelAndView mv = new ModelAndView();
        mv.setViewName("hello2");
        mv.addObject("msg", "接收普通请求参数:" + name);
        return mv;
    }

    /**
     * 接收普通请求参数
     * http://localhost:8080/hello/show18?name=998 显示为998
     * http://localhost:8080/hello/show18?name 显示为hello
     * @return
     */
    @RequestMapping("show18")
    public ModelAndView test18(@RequestParam(value="name",required=true,defaultValue="hello")String name){
        ModelAndView mv = new ModelAndView();
        mv.setViewName("hello2");
        mv.addObject("msg", "接收普通请求参数:" + name);
        return mv;
    }
}

6、测试

@RequestParam与@Param区别

@RequestParam 用于controller层,是Spring的注解

解决前台参数名称与后台接收参数变量名称不一致的问题,等价于request.getParam

  • value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的name为username的参数的值将传入;
  • required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;
  • defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是SpEL表达式,如“#{systemProperties['java.vm.version']}”。
    @ResponseBody
    @RequestMapping("login")
    public String login(@RequestParam(value = "username") final String username,
                        @RequestParam(value = "password",required = false) final String password,
                        @RequestParam(value = "valcode",required = false) final String valcode) {
                        }    

**@Param** 用于dao层,是mybatis中的注解

使得mapper.xml中的参数与后台的参数对应上,也增强了可读性

如果两者参数名一致得话,spring会自动进行封装,不一致的时候就需要手动去使其对应上。

即:用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中 。

public interface Mapper {    
@Select("select s_id id,s_name name,class_id classid"+ 
        "from student where  s_name= #{aaaa} and class_id = #{bbbb}") 
 public Student select(@Param("aaaa") String name,@Param("bbbb")int class_id);  
   
@Delete......        
@Insert......     
} 

在dao层,用来给参数命名,在Mybatis的mapper中加上该注解,传递的参数与Sql中的字段名一致

 List<Employee> getAllEmployeeByPage(@Param("page") Integer page, 
                                      @Param("size") Integer size);

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2022-01-12

SpringMVC注解@RequestParam方法原理解析

一.作用 作用在方法传递的参数前,用于接收所传参数 例如:http://localhost:8081/selectStudentById?id=01 接收问号后面的参数值(允许多个参数) 二.注解内部的四个属性 1.name 指定传入的参数名称,其后面跟的参数名称一定要与前端传入的参数名称一致 2.value 指定传入的参数名称,其后面跟的参数名称一定要与前端传入的参数名称一致 3.requred 指定参数是否是必传参数,如果不指定,默认为true 4.defaultValue 指定参数的默认值

聊聊@RequestParam,@PathParam,@PathVariable等注解的区别

@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充 @RequestParam 看下面一段代码: http://localhost:8080/springmvc/hello/101?param1=10&param2=20 根据上面的这个URL,你可以用这样的方式来进行获取 public Strin

@RequestParam注解加与不加有什么区别

1.背景 在接收请求中的参数时,我们常常会使用到@RequestParam注解. 但是有时候却发现,好像不加这个注解也能正常接收到参数? 2.区别 现在有两个方法 请求 "/out1" 不带注解 请求 "/out2" 带上了@RequestParam注解 在浏览器中直接访问out1与out2 out1输出null out2报错 加上了注解 必须指明参数才能正常访问 3.扩展 在使用@RequestParam注解时,常见以下属性. 1.defaultValue 设置默

解决使用@RequestParam注解和泛型遇到的问题

目录 使用@RequestParam注解和泛型 @RequestParam注解的作用及用法 使用@RequestParam注解和泛型 @RequestParam注解的作用是给传入的参数起一个别名,但是当参数中含有泛型的时候,该注解无法识别泛型 去掉@RequestParam注解之后 @RequestParam注解的作用及用法 最简单的两种写法,在写接口时:加或不加@RequestParam注解的区别 第一种写法参数为非必传,第二种写法参数为必传.参数名为userId 第二种写法可以通过@Requ

Spring MVC如何使用@RequestParam注解获取参数

目录 使用@RequestParam注解获取参数 @RequestParam无法获取参数 使用@RequestParam注解获取参数 创建Hello控制器类 package com.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bin

spring mvc中的@ModelAttribute注解示例介绍

前言 本文介绍在spring mvc中非常重要的注解@ModelAttribute.这个注解可以用在方法参数上,或是方法声明上.这个注解的主要作用是绑定request或是form参数到模型对象.可以使用保存在request或session中的对象来组装模型对象.注意,被@ModelAttribute注解的方法会在controller方法(@RequestMapping注解的)之前执行.因为模型对象要先于controller方法之前创建. 请看下面的例子 ModelAttributeExample

spring mvc 读取xml文件数据库配置参数的方法

本文主要介绍怎么通过属性注入与构造器注入实现把我们项目中要用到的数据库参数放到xml文件里面去,方便部署. spring mvc 4.2.6项目 SQL Server 2008数据库 本文介绍的主要使用ApplicationContext以及其实现类实现.主要用到的是ClassPathXmlApplicationContext. ClassPathXmlApplicationContext:从类路径ClassPath中寻找指定的XML配置文件,找到并装载 完成ApplicationContext

[Spring MVC]-详解SpringMVC的各种参数绑定方式

SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post"> <input name="count" value="10" t

spring mvc整合freemarker基于注解方式

基于网络改进为:最正常版本 复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?> <beans     xmlns="http://www.springframework.org/schema/beans"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns:p="htt

Spring MVC url提交参数和获取参数

普通URL提交参数 该格式url为:url.do?param1=mahc&param2=8888.00 需要在上文中的HelloController对象添加方法如下: /** * Spring MVC URL提交参数 * @param name * @return */ @RequestMapping("/param") public ModelAndView getInfo(@RequestParam("name") String name){ Strin

Spring MVC请求参数接收的全面总结教程

前提 在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结.SpringMVC中处理控制器参数的接口是HandlerMethodArgumentResolver,此接口有众多子类,分别处理不同(注解类型)的参数,下面只列举几个子类: RequestParamMethodArgumentResolver:解析处理使用了@RequestParam注解的参数.MultipartFile类型参数和Simple类型(如long.int)参数. Reques

14个编写Spring MVC控制器的实用小技巧(吐血整理)

本文介绍了编写Spring MVC框架的控制器(controller)的基础技巧和最佳操作.在Spring MVC框架中,编写控制器类通常是为了处理用户提出的请求. 编写完成后,控制器会调用一个业务类来处理业务相关任务,进而重定向客户到逻辑视图名.Springdispatcher servlet会对逻辑视图名进行解析,并渲染结果或输出.这就是一个典型的"请求-响应"的完整流程. 1.使用@controllerstereotype 创建一个能够处理单个或多个请求的控制器类,最简单的方法就

spring Mvc配置xml使ResponseBody返回Json的方法示例

前言 学习了spring mvc后,发现spring mvc返回json数据比struts2要方便,使用@ResponseBody就可以了 @ResponseBody 在返回的数据不是html标签的页面,而是其他某种格式的数据时(如json.xml等)使用: 不在springMvc中配置json的处理的话,我们通常会在Controller层中获取到数据之后进行类型转化,将数据转成json字符串,比如调用fastjson进行转化,如下 @RequestMapping("/getCategoryTr

Spring MVC的国际化实现代码

Spring MVC的国际化是建立在Java国际化的基础上的,其一样是通过提供不同国家的语言环境的消息资源.通过ResourceBundle加载Locale对应的资源文件.再取得该资源文件中指定Key对应的消息. 步骤: 1.给系统加载国际化资源 2.输出国际化.Spring MVC输出国际化消息有两种方式. 在页面上输出国际化消息.需要使用Spring MVC的标签库. 在Controller的处理方法中输出国际化消息.需要使用org.springframework.web.servlet.s

Spring MVC 简单的hello world的实现

一.项目搭建 1.可以在新建项目的使用Spring MVC框架.或者创建一个简单的项目之后再用Add Framework Support来添加Spring MVC框架. 2.删除自动生成的lib的jar包,使用pom文件来进行管理包.目录结构如下图. 3.pom文件.加载完成之后才能进行下一步. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apac