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、校驗表單
註解 |
描述 |
---|---|
@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";
}