3 개의 텍스트 영역으로 피드백 양식을 캡처하는 명령 객체가 있습니다.grails 도메인 객체의 필드 그룹 유효성 확인
class FeedbackCommand {
String textarea1
String textarea2
String textarea3
String username
static constraints = {
textarea1(nullable:true, blank:true)
textarea2(nullable:true, blank:true)
textarea3(nullable:true, blank:true)
username(nullable:false, blank:false)
}
}
적어도 하나의 텍스트 영역이 작성되었는지 확인하고 싶습니다.
가짜 플래그 필드를 '제약'필드로 추가 한 다음 해당 필드에 대한 사용자 지정 유효성 검사기에서 개체 검사를하고 있습니다. 내 자신을 둘러보고 내가 원하는 것을 찾지 못하면 오류가 발생합니다. 지금
, 나는이 일을 해요 :class FeedbackCommand {
String textarea1
String textarea2
String textarea3
boolean atLeastOne = true
String username
static constraints = {
textarea1(nullable:true, blank:true)
textarea2(nullable:true, blank:true)
textarea3(nullable:true, blank:true)
atLeastOne(validator: { boolean b, FeedbackCommand form, Errors err ->
if (b) {
if ((form.textarea1==null || form.textarea1?.isAllWhitespace()) &&
(form.textarea2==null || form.textarea2?.isAllWhitespace()) &&
(form.textarea3==null || form.textarea3?.isAllWhitespace()))
{
// They havent provided ANY feedback. Throw an error
err.rejectValue("atLeastOne", "no.feedback")
return false
}
}
return true
})
username(nullable:false, blank:false)
}
}
이
- 에 더 나은 방법이 분야의 관련/그룹 (적어도 하나는, 2를 비워 둘 수 없습니다를 확인 값 등을 가져야한다)?
- 내 문단이 아닌 if-statement 블록이 아닌 "적어도 하나 이상의 null/공백이 없어야 함"을 표현하는 그루비 한 방법은 무엇입니까?
감사
고맙습니다. 그 플러그인은 내가 웹 플로우와 cmdObjects를 사용하면서 씨름 해 왔던 것들을 많이 다루는 것처럼 보입니다. – Tak
우리는 크고 긴 웹 플로우에서 명령 객체의 유효성을 검사 할 때 발생했던 몇 가지 문제를 해결하기위한 플러그인을 처음 개발했습니다. – Ruben