전자 메일이 포함 된 Spring Bean의 유효성을 검사하려고하지만 유효성 검사기 나 BindingResult는 요청 빈의 전자 메일이 빈 문자열로 제공 될 때 오류를 표시하지 않습니다.스프링 BindingResult 또는 유효성 검사기가 왜 오류를 표시하지 않는 이유는 무엇입니까?
콩 : , 다음 코드를 참조하십시오
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springmodules.validation.bean.conf.loader.annotation.handler.Email;
import org.springmodules.validation.bean.conf.loader.annotation.handler.NotEmpty;
@Component("grouponRedemptionFormBean")
@Scope("prototype")
public class GrouponRedemptionBean {
@NotEmpty(message = "Please enter your email addresss.")
@Email(message = "Please correct your email.")
private String email;
…
}
컨트롤러 :
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BeanPropertyBindingResult;
import org.springframework.validation.BindingResult;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class GrouponVoucherRedemptionController {
@Autowired
@Qualifier("defaultBeanValidator")
private Validator validator;
@RequestMapping(value="/groupon-redemption.ep", method=RequestMethod.POST)
public String PostGrouponRedemption(@Valid @ModelAttribute GrouponRedemptionBean grouponRedemptionBean, BindingResult bindingResult,
HttpServletRequest request, HttpServletResponse response, Model model){
Errors errors = new BeanPropertyBindingResult(grouponRedemptionBean, "grouponRedemptionFormBean");
validator.validate(grouponRedemptionBean, errors);
if(errors.hasErrors()) {
bindingResult.addAllErrors(errors);
}
if (bindingResult.hasErrors()) {
return GROUPON_REDEMPTION_VIEW;
}
...
XML 구성 :
<mvc:annotation-driven />
내가 BindingResult의 위치를 변경하고 검사기를 추가 - 결과는 프로젝트 작업에서 같은 –
수행 다른 검증인가? – Roman
무슨 소리 야? –