내가 가지고 자바 빈즈 내부에 다음 코드를내 사용자의 접근은 사용되지 않습니다 만 필드 기본값은 최대 절전 모드 검사기에서 사용하는 대신
@AssertTrue
private boolean addressReferenceValid;
public boolean isAddressReferenceValid() {
if (addressType.equals(AddressType.ON_THE_FLY_ADDRESS) && StringUtils.isEmpty(addressReference)) {
return false;
}
return true;
}
내가 가진 문제는 가 접근이 결코 isAddressReferenceValid이다 사용되었고 그것은 addressReferenceValid에 대한 기본값 (예 : false
) 만 사용 된 것 같습니다.
나는 Spring Roo가 그 변수에 대한 접근자를 생성하지 않았다는 것을 두 번 확인했다.
아무도 도와 줄 수 있습니까?
P. 다음 ValidationMessages.properties
파일에서 다음 키가 해결되지 않기 때문에 나는 방법에 직접 @AssertTrue 주석을 넣을 수 없습니다 AssertTrue.familyAdvertisementSearchCriteriaInfo.addressReferenceValid
편집 1 :
전체 콩 :
@RooEquals
@RooJavaBean
public class FamilyAdvertisementSearchCriteriaInfo {
@Valid
private FamilyAdvertisementSearchCriteria searchCriteria;
private Address currentAddress;
private String addressReference;
@NotNull
private AddressType addressType;
@AssertTrue(groups=Default.class)
private boolean addressReferenceValid;
public boolean isAddressReferenceValid() {
if (addressType.equals(AddressType.ON_THE_FLY_ADDRESS) && StringUtils.isEmpty(addressReference)) {
return false;
}
return true;
}
}
유효성 검사는 다음 컨트롤러에서 발생합니다 :
@RequestMapping(value = "/familyAdvertisementSearch", method = RequestMethod.POST, produces = "text/html")
public String familyAdvertisementSearchResults(@ModelAttribute @Validated(Default.class) FamilyAdvertisementSearchCriteriaInfo familyAdvertisementSearchCriteriaInfo, BindingResult bindingResult, Model model) {
if(bindingResult.hasErrors()){
populateModel(model);
familyAdvertisementSearchCriteriaInfo.setCurrentAddress(memberService.retrieveCurrentMemberAddress());
return "search/familyAdvertisementSearchForm";
}
...
콩 인증은 어떻게합니까? 어떤 응용 프로그램 계층에서 유효성 검사를 수행 하시겠습니까? 그리고 검증을 촉발시키는 것은 무엇입니까? 아니면 Bean Validation API를 직접 사용하여 유효성을 검사합니까? 유효성 검사를받는 bean에 대한 다른 제한 조건이 있습니까? 어쩌면 전체 콩을 게시 할 수 있습니까? – Hardy
안녕하세요! 요청한대로 내 게시물을 수정했습니다. 네, 위에 나와있는 다른 제약이 있습니다. 추가 정보가 필요하면 알려주십시오. – balteo