2014-01-13 4 views
0

변환기 내부의 구성 요소에 특성을 추가 할 수 있어야하는지 궁금합니다. 그래서 getAsString 안에 uiComponent.addAttribute()를 사용할 것입니다. 이것은 나를 위해 50 % 작동하는 것, 초기 값이 설정되어 있지만 변환기가 나중에 새 값을 설정하면 초기 값은 여전히 ​​검색됩니다 호출됩니다.변환기의 구성 요소에 속성을 동적으로 추가 하시겠습니까?

답변

1

분리 임금이이므로이 방법으로는 안됩니다. 대신 bean 또는 scope 속성을 사용해야합니다.

하지만 어쩌면이 맞는 :

<h:inputText value="#{bean.someValue}" converter="#{bean}"> 
    <f:attribute name="attrName" value="#{bean.attrValue}"/> 
</h:inputText> 

@ManagedBean 
public class Bean implements Converter 
{ 
    private String someValue; 
    private String attrValue; 

    @Override 
    public String getAsString(FacesContext context, UIComponent component, Object value) 
    { 
     attrValue = "uppercase"; 
     return someValue.toUpperCase(); 
    } 

    @Override 
    public Object getAsObject(FacesContext context, UIComponent component, String value) 
    { 
     attrValue = "lowercase"; 
     return value.toLowerCase(); 
    } 

    public String getSomeValue() 
    { 
     return someValue; 
    } 

    public void setSomeValue(String someValue) 
    { 
     this.someValue = someValue; 
    } 

    public String getAttrValue() 
    { 
     return attrValue; 
    } 

    public void setAttrValue(String attrValue) 
    { 
     this.attrValue = attrValue; 
    } 
} 
+0

확인이 작동합니다. 그래도 그 속성을 사방에 추가해야 할 필요가 있습니다. 항상 페이스 렛을 조작해야하는 작업을 수행 할 수있는 방법이 없습니까? – KTrum

+0

당신은 jsf에서 너무 많은 척하고 있습니다;) –

관련 문제