我試圖使用Spring Validator和@Validated註釋來驗證Get Request參數,但無法獲取驗證器來運行。我正在使用ModelAttribute來嘗試讓驗證器在路徑變量而不是請求體上運行。是否可以在Get Request Path Variable上運行驗證器?使用Spring @驗證註釋驗證獲取請求路徑變量
這是我的控制器類和方法
@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;
}
}
並且這個校驗
@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