복붙노트

[SPRING] 400 Hibernate @Valid가있는 잘못된 요청

SPRING

400 Hibernate @Valid가있는 잘못된 요청

내 양식의 유효성을 검사 할 때 이상한 행동이 있습니다.

Hibernate @Valid 어노테이션을 추가하자마자, Tomcat은 게시 된 데이터가 유효하지 않으면 "bad"라고 요청했다. 데이터가 유효하다면 걱정할 필요가 없습니다.

나는 사용한다:

지금은 매우 간단한 검증을 수행합니다.

public class RemoveCacheElementForm {

    @NotBlank(message = "Please select a cache name.")
    private String name;

    @NotBlank(message = "Please select a cache entry key.")
    private String key;

스프링 컨트롤러 :

/**
 * Handler to remove one cached elements from the specified cache.
 * 
 * @return the view.
 */
@RequestMapping(value = CACHE_REMOVE, method = RequestMethod.POST)
public String removeCachedElement(ModelMap model, @Valid @ModelAttribute(FORM_NAME) RemoveCacheElementForm form) {
    model.addAttribute("removeElementResult", CacheUtils.removeCachedElement(form.getName(), form.getKey()));
    initializeModel(model);
    return CACHE_ADMIN_PAGE;
}

@Valid 주석을 제거하면 걱정할 필요가 없습니다.

누구나 아이디어가 있으십니까?

도와 주셔서 정말로 고맙습니다! :-)

해결법

  1. ==============================

    1.코드를 다음과 같이 변경하십시오.

    코드를 다음과 같이 변경하십시오.

    @RequestMapping(value = CACHE_REMOVE, method = RequestMethod.POST)
    public String removeCachedElement(ModelMap model, @Valid @ModelAttribute(FORM_NAME) RemoveCacheElementForm form, BindingResult bindingResult) {
        model.addAttribute("removeElementResult", CacheUtils.removeCachedElement(form.getName(), form.getKey()));
        initializeModel(model);
        return CACHE_ADMIN_PAGE;
    }
    
  2. from https://stackoverflow.com/questions/23202788/400-bad-request-with-hibernate-valid by cc-by-sa and MIT license