2017-01-24 10 views
0

유효성 검사 내 구성 요소의 레이블을 가져올 수 있습니까? 내 유효성 검사시 사용자 정의 오류 메시지에 대해이 레이블이 필요합니다. 모양은 다음과 같습니다.Wicket 7의 IValidatable에서 라벨을 얻는 방법

"값은 {0}보다 작을 수 없습니다." 내 구성 요소는 다음 레이블이있는 경우

내가 좋아하는 전에 쓰고 싶어하지 :

"LABELNAME을 : 값이 더보다 적을 수 있습니다 {0}입니다."

내 구성 요소 BigDecimalValidatorBigDecimalTextfield를 알 수 없습니다.

tfiGV = new BigDecimalTextField("tfiGV", new Model<BigDecimal>()); 
tfiGV.setLabel(Model.of(Const_Labels.GV)); 
tfiGV.add(BigDecimalValidator.minimum(0)); 

의 validatable BigDecimalValidator 필요한 라벨에 도달 할 수 있습니다.

@Override 
public void validate(IValidatable<BigDecimal> validatable) { 
    // Doesn't work ((FormComponent<BigDecimal>) validatable).getLabel(); 

    if (((BigDecimal) validatable.getValue()).compareTo(BigDecimal.valueOf(minimum, 3)) == -1) { 
      ValidationError valError = new ValidationError(); 
      valError.setMessage(getErrorMessageMin(minimum)); 
      validatable.error(valError); 
    } 
} 

나는 레이블이 BigDecimalValidator에 대한 생성자 도달 할 수 있지만, 이것은 좋은 해결책이 아니다는 것을 알고있다.

답변

1

i18n 메시지에서 {label}을 사용할 수 있으며 Wicket은 양식 구성 요소의 레이블로 바꿉니다.

예. {label}: The value may not be less than {0}.

+0

이 기능은 XxxxxTextField/Label 쌍의 특정 생성 여부에 달려 있습니다. –