欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-18 11:10:51
目录@requestparam注解使用1、作用2、语法3、测试环境4、工程结构5、业务处理器hellocontroller.java6、测试@requestparam与@param区别@request...

@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、工程结构

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

步骤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注解的使用(简单易懂)

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

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

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

@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);

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