拒絕具有前導或尾隨空格字段的api調用請求

在Spring's MVC中,如果我有一個控制器,并且我想拒絕任何帶有queryparam或requestbody的請求,這些請求的字段帶有前導或尾隨空格,那么最好的方法是什么?我們能用驗證器嗎?

    @PostMapping(value="/add")
    public ResponseEntity<User> addUser(@Validated(AddUser.class) @Requestbody User user, BindingResult result) {
        ...
        // Business logic here
        // How to check leading and trailing spaces and throw error if present
        ...
        return responseEntity;
    }

在上面的例子中,假設User只有firstName和lastName兩個字段,我想檢查firstName和lastName沒有任何前導空格或尾隨空格,如果有,拋出錯誤,最好的方法是什么?

? 最佳回答:

您可以構建自己的自定義驗證程序批注:

@Target({TYPE, FIELD, ANNOTATION_TYPE, TYPE_USE})
@Retention(RUNTIME)
@Constraint(validatedBy = NoSpacesValidator.class)
@Documented
public @interface NoSpaces {
    String message() default "Has trailing or leading spaces!";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}



public class NoSpaceValidator implements ConstraintValidator<NoSpace, String> {

@Override
public void initialize(final NoSpace constraintAnnotation) {
    // Empty as no initialize is necessary
}

@Override
public boolean isValid(final String content, final ConstraintValidatorContext context) {
    return validate(content);
}

private boolean validate(final String content) {
// I suck
    if (StringUtils.isBlank(content)) return false;
    return content.trim().length.equals(content.length)
}
}

然后你可以用@NoSpace注釋你的屬性

主站蜘蛛池模板: 精品成人乱色一区二区| 日本一道一区二区免费看| 无码视频免费一区二三区| 亚洲一区二区三区在线播放| 国产午夜精品一区理论片飘花| 亚洲av无码一区二区三区不卡 | 无码人妻久久一区二区三区蜜桃| 免费无码毛片一区二区APP| 国产一区三区三区| AV怡红院一区二区三区| 极品少妇伦理一区二区| 国产伦精品一区二区三区视频小说 | 韩国福利视频一区二区| 国产精品亚洲不卡一区二区三区| 日韩AV片无码一区二区不卡| 无码人妻一区二区三区av| 亚洲国产成人久久一区二区三区| 亚洲一区二区三区不卡在线播放| 亚欧色一区W666天堂| 亚洲国产一区二区三区青草影视| 久久久久成人精品一区二区| 亚洲成AV人片一区二区| 久久久久99人妻一区二区三区| 国99精品无码一区二区三区| 亚洲av无码一区二区三区网站 | 日本内射精品一区二区视频| 久久se精品一区精品二区| 无码精品人妻一区二区三区免费看 | 波多野结衣的AV一区二区三区| 男人的天堂av亚洲一区2区| 亚洲av永久无码一区二区三区 | 一区 二区 三区 中文字幕 | 在线视频一区二区三区四区| 日韩一区在线视频| 一区二区三区国模大胆| 九九久久99综合一区二区| 亚洲码一区二区三区| 国产成人午夜精品一区二区三区| 国产一区二区三区福利| 国产伦精品一区二区三区| 日韩精品一区二区三区中文精品|