Spring Validatorと@Validatedアノテーションを使用してGet Requestパラメータを検証しようとしていますが、バリデータを実行できません。私はModelAttributeを使用してバリデーターをリクエストボディの代わりにパス変数で実行しようとしています。 Get Request Path Variableでバリデーターを実行することは可能ですか?ここでSpring @Validated Annotationを使用してGetリクエストパス変数を検証する
は、エンドポイントを打ったときにどちらのプリント文が実行されている私のコントローラクラスとメソッド
@RestController
public class ProfileController {
@RequestMapping(value = "/profile/{param}", method = RequestMethod.GET)
public IVRProfile getProfile(@Validated(ParamValidator.class) @ModelAttribute("param") String param) {
return sampleProfile();
}
@ModelAttribute("param")
public String paramAsModelAttribute(@PathVariable String param) {
return param;
}
}
そしてValidatorクラス
@Component
public class ParamValidator implements Validator
{
@Override
public boolean supports(Class<?> clazz)
{
System.out.println("Validator supports test");
return String.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors)
{
System.out.println("Validator Test");
// Validation code
}
}
です。
私が行方不明になったり、別のやり方で助けてくれれば、大変感謝しています。
こんにちはOyewole。私はポストではっきりしていないことを知っている、私はパス変数を要求していないパラメータを検証することを意味した。より一貫性のあるように投稿を更新しました。私の問題は、変数を取得することではなく、変数にバリデータを実行することです – BlakeM