2014-05-16 1 views
0

저는 Spring 4 + Hibernate + Thymeleaf의 초보자입니다.Spring 4 + Hibernate + Thymeleaf의 필드에 toString 메소드를 오버라이드

모델을 구현하는 myEntity.class가 있습니다. 내가 모든 게터와 세터를 정의하고 내가 "toString()"메소드를 오버라이드 (override) 내부 는 :

/** 
    * override toString method 
    */ 
    @Override 
    public String toString() { 
     return String.format("%s(id=%d, title='%s', descripion=%s, enabled=%d)", 
       this.getClass().getSimpleName(), 
       this.getId(), this.getTitle(), this.getDescription(), this.getEnabled()); 
    } 

모든 것이 여기까지 괜찮습니다.

이제 필드 "Enabled"를 통해 toString() 메서드 만 ovveride하고 싶습니다. 내가 html 파일 템플릿 (thymeleaf)에있을 때 그래서, 내가
는 "사용하지 않음"(필드가 1 인 경우) "사용"

를 인쇄하려면 (0). 내 프로젝트에서

, 난 모든 테이블이 변환을 수행해야합니다, 그래서 내가 toString 메소드를 사용하는 아이디어를 가진 전에이 같은 노력이

을 할 수있는 가장 좋은 방법을 찾고 있어요 :

<input type="text" class="form-control" th:field="${my_entity.enabled== 1}? #{button.label.enabled} : #{button.label.not_enabled}" disabled="disabled"></input> 

어떤 도움이나 제안을 환영합니다 (난,이 때문에 구문이 작동하지 않습니다 알고있다). 감사합니다

편집 : 내가 더 나은 솔루션을 찾을 수 없습니다, 나는이 수행

<div class="col-sm-7"> 
    <input th:if="${my_entity.enabled == 1}" type="text" class="form-control" th:value="#{button.label.enabled}" disabled="disabled"></input> 
    <input th:if="${my_entity.enabled == 0}" type="text" class="form-control" th:value="#{button.label.not_enabled}" disabled="disabled"></input> 
</div> 

답변

0

내가이

<div class="col-sm-7"> 
    <input type="text" class="form-control" th:value="((${my_entity.enabled} == 1) ? 'Enabled' : 'Not Enabled')" disabled="disabled"></input> 
</div> 

UPDATE 같은 것을 할 것을 할 수 있습니다 ' 사용 가능한 필드가 String 클래스라고 가정하면 클래스의 toString() 메서드를 재정의해야합니다.

public class ExtendedString extends String 
{ 
    @Override 
    public String toString() 
    { 
     //override logic here 
    } 
} 

지금은 사용할 수 아래와 같다 내가 한 행에 그를 작성하는 많은 방법으로 시도 http://commons.apache.org/proper/commons-lang/javadocs/api-3.1/org/apache/commons/lang3/BooleanUtils.html

+0

매우 감사 참조 BoolenUtils.toString(boolean, trueString, falseString) 클래스를 사용하는 것입니다하지만 난이 올바른 구문을 찾을 수 없습니다 부울입니다 . 이것은 좋은 해결책이지만, 누군가가 내 주요 질문에 대답 할 수 있다면 여전히 궁금하다. 하나의 테이블 필드 위에 toString() 메소드를 오버라이드하거나 오버라이드 할 수없는 경우 – SaganTheBest

+0

@ lethal.industry 업데이트 된 답변보기 – ndrone

+0

감사합니다. @ohiocowboy 너의 좋은 설명을 위해서. 내가 잘 이해한다면, 당신의 코드의 "toString override"는 내 질문에 쓴 것과 같다. 하지만 적어도 이제는 내가하고 싶은 일이 가능하지 않다는 것을 확인해 주셨습니다. – SaganTheBest

관련 문제