@Controller
@EnableWebMvc
@Validated
public class ChildController extends ParentController<InterfaceController> implements InterfaceController{
@Override
@RequestMapping(value = "/map/{name}", produces = "application/json; charset=UTF-8", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public List<Friends> getAllFriendsByName(
@Valid
@Size(max = 2, min = 1, message = "name should have between 1 and 10 characters")
@PathVariable("name") String name,
@RequestParam(value="pageSize", required=false) String pageSize,
@RequestParam(value="pageNumber", required=false) String pageNumber,
HttpServletRequest request) throws BasicException {
//Some logic over here;
return results;
}
@ExceptionHandler(value = { ConstraintViolationException.class })
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
public String handleResourceNotFoundException(ConstraintViolationException e) {
Set<ConstraintViolation<?>> violations = e.getConstraintViolations();
StringBuilder strBuilder = new StringBuilder();
for (ConstraintViolation<?> violation : violations) {
strBuilder.append(violation.getMessage() + "\n");
}
return strBuilder.toString();
}
を検証されていない、私は春のリクエストパラメータにかなり基本的な検証を行うにしようとしていますが、単に例外ハンドラを呼び出すようには見えない、誰かのポイントができました私は正しい方向に私を春RESTサービスコントローラがHi @PathVariableと@Valid
PS私はNoHandlerFoundExceptionを取得し続ける
カスタムエディタとはどういう意味ですか?そして、JSR303の注釈ではありません。 –
パス変数を通常のBeanに変換するための 'PropertyEditor'または' org.springframework.format.Formatter.Formatter'を意味しました。そうです。@ SizeはJSR 303アノテーションです。あなたはpath変数が実際のURLの一部であることを知っているので、springは自然に有効と見なしますが、検証したい場合でもそれらはあなたのオプションです。 – mushfek0001
これは、この例または回答が間違っていることを意味しますか? http://stackoverflow.com/questions/35403744/pathvariable-validation-in-spring-4 –