精华内容
下载资源
问答
  • Java controller 参数注解

    千次阅读 2018-07-26 10:12:52
    Java controller 参数注解 @PathVariavle pathvariable是把变量存放在url中,比较适用于传输变量较少的情况。但是也可以用来传输多个变量。比如: 前台: targetUrl/参数1/参数2/参数3 后台@RequestMapping(...

    Java controller 参数注解

    1. @PathVariavle
      pathvariable是把变量存放在url中,比较适用于传输变量较少的情况。但是也可以用来传输多个变量。比如:

      前台: targetUrl/参数1/参数2/参数3
      后台@RequestMapping(“targetUrl/{参数1}/{参数2}/{参数3}”)
      public void getHeader(@Pathvariable 参数1,@PathVariable 参数2)
      注意:参数中不能存在 “/”,如果存在 “/” 会导致后台获取不到参数。如果存在“/”可以在用@代替,然后后台再翻译成”/“

    2. @RequestParam 可以用于传输json对象,value即为对应字段的名字
      例如: @RequestParam(value=”name”,required=”false“) 。
      @RequestParam和@PathVariable两个注解可以同时使用

    3 直接使用对象来接前台传过来的json串
    @PostMapping
    public void saveHeader(Header header){}

    展开全文
  • SpringBoot Controller参数验证

    千次阅读 2018-05-27 13:13:34
    SpringBoot已经将校验器集成,不需要自己配置校验器,直接就可以拿来用首先在实体类中进行配置校验规则:使用的是javax.validation.constraints包下的注解,有@Not...然后再controller参数中进行配置:public Str...

    SpringBoot已经将校验器集成,不需要自己配置校验器,直接就可以拿来用

    首先在实体类中进行配置校验规则:使用的是javax.validation.constraints包下的注解,有@NotNull,@Null等等

    private int id;
    @NotNull(message="not")
    private String name;

    然后再controller参数中进行配置:

    public String validate(@Valid User user,BindingResult validResult) {
        if(validResult.hasErrors()) {
    	List<ObjectError> list = validResult.getAllErrors();
    	for (ObjectError objectError : list) {
    	    System.out.println(objectError);
    	}
         }	
    }
    在需要验证的参数上添加@valid注解,然后在方法参数中添加BindingResult 类进行验证的接收,每有一个验证不通过时,list添加。
    展开全文
  • Spring mvc中Controller参数绑定注解详解

    千次阅读 2017-06-06 14:41:12
    Spring mvc中Controller参数绑定注解详解

    Spring mvc中Controller参数绑定注解详解

    简介

    Request Method参数常用的注解,我们根据他们处理的Request不同部分分为4类:

    1. 处理Request Uri(这里指的是Uri template中的Variable,不包含QuertString部分):@PathVariable
    2. 处理Request Header:@RequestHeader,@CookieValue
    3. 处理Request Body: @RequestParam,@RequestBody
    4. 处理Attribute类型:@SessionAttributes,@ModelAttribute;

    1.@PathVariable

    当使用@RequestMapping URI template样式映射时,即someUrl/{paramId},这时的paramId可以通过@PathVariable注解绑定它传过来的值到方法的参数上。

    @Controller
    @RequestMapping("/student/{studentId}")
    public ResponseEntity<List<Students>> queryStudentById(@Paramvariable String studentId){
        return new ReponseEntity<>(studentService.queryStudentById(studentId),HttpStatus.Ok)
    }

    2.@RequestHeader、@CookieValue

    @RequestHeader注解,可以把Request请求header部分的值绑定到方法的参数上。

    这时一个Request的Header部分:

    Host        localhost:8080
    Accept      text/html,application/xhtml+xml,aaplication/xml;q=0.9
    Accept-Language     fr,en-gb;q=0.7,en;q=0.3
    Accept-Encoding     gzip,defalte
    Accept-Charset      ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Keep-Alive          300

    使用@RequestHeader注解的Java片段:将Request header部分的Accept-Encoding和Keep-Alive的值分别绑定在encoding和keepAlive上。

    @RequestMapping("displayHeaderInfo.do")
    public void displayHeaderInfo(@RequestHeader("Accept-Encoding") String encoding,@RequestHeader("Keep-Alive") long keepAlive){
        //...
    }

    @CookieValue可以把Request header中关于cookie的值绑定到方法的参数上

    例如有这样的Cookie值

    JSESSIONID=415AAC78C59DACE0B842

    使用@CookieValue绑定制定Cookie值的Java代码:将JSESSIONID的值绑定到了参数cookie 上

    @Requestmapping("displayHeaderInfo.do")
    public void displayHeaderInfo(@CookieValue("JSESSIONID") String cookie){
        //...
    }

    3.@RequestParam、@RequestBody

    @RequestParam使用分为2种情况:第一种为常用情况
    1. 处理简单类型的绑定:通过Request.getParamter()获取的String的值可直接转换为简单类型String的情况。使用Request.getParamter()的方式获取参数,可以处理get方式中的queeryString的值,也可以处理post方式中的body data的值;
    2. 处理Content-Type:为application/s-www-form-urlencoded编码的内容,提交方式GET、POST;

    @RequestParam有两个参数:value(用来指定要传入值的id名称)、required(用来指明参数是否必须绑定)

    下面是使用@RequestParam的java代码片段:

    @RequestMapping(value="/teacher",method=RequestMethod.GET,produces="application/json")
    public ResponseEntity<List<Teacher>> queryByIdAndType(@RequestParam String id,@RequestParam int type){
        return new ResponseEntity<>(teacherService.queryByIdAndType(id,type),HttpStatus.OK);
    }

    @RequestBody:常用来处理Content-Type,但并不是application/x-www-form-urlended编码的内容虽然可以处理它,例如application/json,application/xml等。

    使用@RequestBody的代码

    @RequestMapping(value="/something",method=RequestMethod.PUT)
    public void handle(@RequestBody String body,Writer writer)throws IOException{
     writer.write(body);
    }

    4.@SeesionAttributes、@ModelAttribute

    @SessionAttributes:用来绑定HttpSession中的attribute对象的值,便于在方法中的参数里使用;拥有两个属性valuetypes,可以通过名字和类型指定要使用的attribute对象

    @Controller
    @RequestMapping("/editPet.do")
    @SessionAttributes("pet")
    public class EditPetForm{
        @RequestMapping(method=RequestMethod.GET)
        public String setupForm(Model model){
            Pet pet=new Pet(1);
            model.addAttribute("pet",pet)
        }
    }

    @ModelAttribute:
    参考博客:
    * http://hbiao68.iteye.com/blog/1948380
    * http://blog.csdn.net/li_xiao_ming/article/details/8349115

    参考文档:
    http://blog.csdn.net/walkerjong/article/details/7946109

    展开全文
  • controller参数校验

    千次阅读 2019-11-14 11:27:30
    使用javax.validation去校验参数,可以避免过多的if判断。 对需要校验的入参类添加注解 public class TestVO { /*** 用户ID*/ @NotNull(message = "用户id不能为空") private Long userId; /** 用户名*/ @...

      使用javax.validation去校验参数,可以避免过多的if判断。

    • 对需要校验的入参类添加注解
    public class TestVO  {
    
        /*** 用户ID*/
        @NotNull(message = "用户id不能为空")
        private Long userId;
    
        /** 用户名*/
        @NotBlank(message = "用户名不能为空")
        @Length(max = 20, message = "用户名不能超过20个字符")
        @Pattern(regexp = "^[a-zA-Z\u4E00-\u9FA5]+$", message = "只能包含汉子和字母")
        private String username;
    
        /**性别*/
        private String sex;
    }
    • 在controller入参上添加Valid注解
    @Slf4j
    @RestController
    @RequestMapping("/test")
    public class TestController {
    
        @RequestMapping("/aa")
        public void aa(@RequestBody @Valid TestVO testVO) {
            log.info("进来了");
        }
    }
    • 在全局异常捕获类中添加捕获

    全局捕获类见https://blog.csdn.net/zgsxhdzxl/article/details/103064163

    我这里只获取第一个错误信息

        @ExceptionHandler(MethodArgumentNotValidException.class)
        @ResponseBody
        public ResultObject<?> exception(MethodArgumentNotValidException e) {
            BindingResult bindingResult = e.getBindingResult();
            List<ObjectError> allErrors = bindingResult.getAllErrors();
            if (allErrors.size() > 0) {
                ObjectError errorMsg = allErrors.get(0);
                FieldError fieldError = (FieldError)errorMsg;
                return ResultObject.error(ErrorCode.LACK_PARAMETER.getCode(), fieldError.getDefaultMessage());
            }
            return ResultObject.error(ErrorCode.SERVER_ERROR);
        }
    
    • 测试

                                                                  常用注解
    注解类型备注
    @Futurejava.util.Date 等检查给定的日期比当前日期晚.
    @Pastjava.util.Date 等检查给定的日期比当前日期早
    @MaxBigDecimal, BigInteger, byte, short, int, long 以及包装类检查该值是否小于或等于约束条件中指定的最大值.
    @MinBigDecimal, BigInteger, byte, short, int, long 以及包装类检查该值是否大于或等于约束条件中指定的最小值.
    @NotNull任意类型带注释的值不为null.
    @Null任意类型带注释的值为null
    @Pattern(regexp
    )
    String检查该字符串是否能够在match指定的情况下被regex定义的正则表达式匹配
    @Size(min=, max=)String,Collection,Map,array检查带注释的元素的大小是否在最小值和最大值之间.
    @NotBlankString值不为null 切不为"", 不为"  "
    @NotEmptyString,Collection,Map,array值不为null 或者没有值
    @Range(min=, max=)BigDecimal,String, BigInteger, byte, short, int, long 以及包装类值是否位于(包含)指定的最小值和最大值之间。
    @Length(min=, max=)String确认带注释的字符串在min和max之间.

     

    展开全文
  • 记一个以json格式传参,后台controller参数接收问题 问题描述 前端向后台以json格式传参时,碰到时间类型,boolean类型的参数该如何接受? 解决 先解决boolean类型的参数接收问题; 我们接收前端传进来的json,一般...
  • unity Character Controller 参数

    千次阅读 2016-05-09 11:06:54
    参数决定了两个碰撞体可以相互渗入的深度,较大的参数值会产生抖动现象,较小的参数值会导致所控制的游戏对象被卡住,较为合理的设置是该参数值为Radius值的10%。 Character Controller不会对施加给他的作用力...
  • 我们在使用SpringMVC时,常常需要把表单中的参数映射到Controller参数bean对象的属性中,但是spring没有提供String转Date的转换器,这就导致spring遇到这种情况时,会使用ObjectToObecjectConverter去处理,直接使用...
  • 日常项目开发中,validation包为后端校验提供了极大的遍历,那么对于校验失败提醒,我们又...参数校验拦截器 package com.rq.aop.common.handler; import com.alibaba.fastjson.JSON; import com.rq.aop.commo...
  • Java controller参数接收json字符串

    千次阅读 2019-01-03 09:55:23
    有时候前端传回来的参数格式不是我们controller方法参数需要的格式。个人感觉用对象接受能解决一些问题。 假如前端传过来的json数据如下: loginCode:111111 postCode:11111,22222 userList:[{“userCode”:“1”,...
  • 当项目中需要给多项数据循环添加输入框时,这个时候需要去创建TextField并绑定controller的值,而在保存数据的model中无法创建一个TextEditingController的变量。 解决方案一: 比如一个model: class Task{ … ...
  • simulink pid controller参数设置

    万次阅读 2018-03-27 18:47:20
    matlab中PID的传函:一般形式的PID传函:可以发现,比例项和积分项都相同,而微分项,matlab中用D*N*s/(s+N)代替了纯微分项s.这是因为纯微分项物理是不可实现的,所有的传函分母的阶次必须要大于等于分子的阶次才行...
  • 使用@Valid+BindingResult进行controller参数校验

    万次阅读 多人点赞 2018-05-09 01:20:00
    由于controller是调用的第一层,经常参数校验将在这里完成,常见有非空校验、类型校验等,常见写法为以下伪代码:public void round(Object a){ if(a.getLogin() == null){ return "手机号不能为空!"; ...
  • spring boot Controller参数获取注解

    千次阅读 2018-11-28 11:15:25
    1. @PathVariable 获取url中的数据 2.@RequestParam 获取请求参数中的值 /listForm?customerId=XX&amp;cargoName=XXX ...利用BindingResult对象获取参数错误字段和参数错误信息  技巧01:如果...
  • 使用`@Validated`注解校验请求参数
  • Controller中接收到的POST参数如果是中文的话,显示为乱码。已知客户端传过来时编码为UTF-8。 问题产生分析: SpringMVC中默认的编码格式为“ISO-8859-1”,因此造成乱码。 解决方案: 所有的解决方案都是...
  • 1.使用HttpServletRequest getRequest的getParameter("key")... 1.2 controller使用HttpServletRequest getRequest的getParameter获取参数:    2.使用form表单提交实体entity。  要求form中的某个属性name和
  • Springboot2.x的Controller参数的全局拦截

    千次阅读 2019-08-10 10:03:20
    如果我们需要对Controller里面的方法的所有参数进行全局拦截(比如做默认值初始化,自定义验证),则可以从MappingJackson2HttpMessageConverter入手: /** * @author rocklee * @version * Create date:2019年5月...
  • 实际需求:上传文件同时附带上传文件信息的相关参数; 1:、Controler /** * 上传文件附带文件信息参数 * @param param * @param file * @return */ @ApiOperation(value = "上传文件附带文件信息参数" ) ...
  • 如果要数组,用controller参数时可以写成String[] ids。如果要逗号拼接,直接就用String ids。两种方式都可以自动转化。controller的各种参数类型绑定可以搜一下看看。 小记:参数直接用 (@RequestParam Map<...
  • 比如 login 类 username 和 pwd字段 可以单独接收2个String 加@RequestParam 注解 里面写是否必须 但是如果传实体类 怎么弄。。 直接拿login接受 怎么决定某个是否必须 比如 只接受 一个值 或者 全部必须接受
  • 上面提到的两种方法,包括spring,都不是一定能获取到的,如果获取不到,就需要手动在注解里,如@RequestParam里指定映射参数。 参照 ParameterNameDiscoverer的javadoc。
  • 上篇文章 介绍了Spring环境下实现优雅的方法级别的校验,上文埋下了一个伏笔:它在Spring MVC(也就是Controller层的应用),本文将继续讲解Spring MVC中对数据校验的使用。 可能有的小伙伴就会想到:这不一样吗?...
  • Controller传递参数

    2020-06-09 10:53:25
    Spring MVC 之Controller传递参数到另一个Controller ***RedirectAttributes***里的***addAttribute***添加参数 用 return “redirect:/请求URL” 返回的URL就会加上添加的参数
  • Springmvc controller接收请求参数类型

    千次阅读 2018-03-03 13:18:47
    第一种情况:数据是基本类型或者String  1, 直接用表单提交,参数名称相同即可;...Controller参数定义为数组类型即可.不要定义为List  Html代码  form action="${pageContext.request.contextPat

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 373,426
精华内容 149,370
关键字:

controller参数