[SpringMVC]基礎

1、接收參數

@RequestParam

映射請求參數,從request裏面取值,屬性如下:

name/value:映射字段名稱

required表示是否必須,默認爲true

defaultValue請求參數的默認值

@RequestMapping(method=RequestMethod.GET)
public List<Spittle> spittles(
    @RequestParam(value="max",
                  defaultValue=MAX_LONG_AS_STRING) long max,
    @RequestParam(value="count", defaultValue="20",required=false) int count) {
  return spittleRepository.findSpittles(max, count);
}

@PathVariable

從URI模板裏面來填充,屬性如下:

name/value:映射字段名稱

required表示是否必須,默認爲true

@RequestMapping(value="/{spittleId}", method=RequestMethod.GET)
public String spittle(
    @PathVariable("spittleId") long spittleId) {
  return "spittle";
}

@RequestBody

一般是post請求的時候纔會使用這個請求,把參數丟在requestbody裏面,屬性如下:

required表示是否必須,默認爲true

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class Req {
        private String key;
        private Integer size;
    }

    @RequestMapping(value = "/body", method = {RequestMethod.POST, RequestMethod.GET, RequestMethod.OPTIONS})
    public BaseRsp body(@RequestBody Req req) {
        log.info("req: {}", req);
        return new BaseRsp<>(req);
    }

2、校驗表單

Spring 3.0開始,在Spring MVC中提供了對Java校驗API的支持。這個Java API的實現即可,比如Hibernate Validator
Java校驗API定義了多個註解,這些註解可以放到屬性上,從而限制這些屬性的值。所有的註解都位於javax.validation.constraints包中。註解如下:

註解

描述

@AssertFalse
所註解的元素必須是Boolean類型,並且值爲false
@AssertTrue
所註解的元素必須是Boolean類型,並且值爲true
@DecimalMax
所註解的元素必須是數字,並且它的值要小於或等於給定的BigDecimalString
@DecimalMin
所註解的元素必須是數字,並且它的值要大於或等於給定的BigDecimalString
@Digits 所有註解的元素必須是數字,並且它的值必須有指定的位數
@Future
所註解的元素的值必須是一個將來的日期
@Max
所註解的元素必須是數字,並且它的值要小於或等於給定的值
@Min
所註解的元素必須是數字,並且它的值要大於或等於給定的值
@NotNull
所註解元素的值必須不能爲null
@Null
所註解元素的值必須爲null
@Past
所註解的元素的值必須是一個已過去的日期
@Pattern 所有註解元素的值必須匹配給定的正則表達式
@Size
所註解的元素的值必須是String、集合或數組,並且它的長度要符合給定的範圍

demo如下:

package spittr;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

public class Spitter {

  private Long id;

  @NotNull
  @Size(min=5, max=16)
  private String username;	

  @NotNull
  @Size(min=5, max=25)
  private String password;	


  @NotNull
  @Size(min=2, max=30)
  private String firstName;	

  @NotNull
  @Size(min=2, max=30)
  private String lastName;	

}

@Valid:作用的對象必須滿足校驗限制。

@RequestMapping(value="/register", method=POST)
public String processRegistration(
    @Valid Spitter spitter) {
    ...
  return "success";
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章