2012-08-13 2 views
1

변환기에 문제가 있습니다. 내 xhtml 파일에서 나는 selectOneMenu 객체 목록을 가지고 있고 managedBean 내 객체를 설정하려고한다.변환기가 @ViewScoped와 작동하지 않습니다.

내 managedBean에 @SessionScoped가있는 경우 managedbean의 개체가 채워지지만 managedeban에 @ViewScoped가 있으면 변환기가 사용되지 않고 내 개체가 null입니다.

이 문제를 해결하는 방법은 무엇입니까?

XHTML :

<p:selectOneMenu value="#{rechercheBean.role}" converter="#{typConverter}"> 
    <f:selectItems id="item" value="#{typBean.roles}" var="r" itemLabel="#{r.valeur}" itemValue="#{r}" /> 
</p:selectOneMenu> 

typConverter :

public class TypConverter implements Converter{ 
    @EJB 
    private TypFacadeLocal TypBean; 

    public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) { 
     if (submittedValue.trim().equals("")) { 
      return null; 
     } 
     else { 
      try { 
       Integer id = Integer.parseInt(submittedValue); 
       Typ typ = new Typ(); 
       typ = TypBean.find(id); 
       return typ; 
      } 
      catch (NumberFormatException exception) { 
       throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Typ non valide")); 
      } 
     } 
    } 

    public String getAsString(FacesContext facesContext, UIComponent component, Object value) { 
     if (value == null || value.equals("")) { 
      return ""; 
     } 
     else { 
      return String.valueOf(((Typ) value).getId()); 
     } 
    } 
} 

송신

+1

문제의 원인은 지금까지 게시 된 코드에서 볼 수 없습니다. SSCCE를 게시하십시오. – BalusC

+0

이 문제점에는 코드 오류가 없습니다 ... managedBean이 @ViewScoped 인 경우 managedBean의 내 객체는 null을 유지합니다. TypConverter에 중단 점을 넣으면이 스코프 (@SessionScoped와는 반대로)에 결코 사용되지 않습니다. – holegeek

+0

나는 그것을 이해했습니다. 나는 기본적으로 지금까지 게시 한 코드가 모두 괜찮아 보이고 주어진 코드를 기반으로 구체적인 문제의 원인을 발견하거나 이해할 수 없다고 말하고있었습니다. 우리는 실제 상황을 파악할 수 있도록 더 많은 컨텍스트/코드를 제공해야합니다. SSCCE의 맛을 낸 스 니펫이 가장 이상적입니다 (JSF의 경우, 기본적으로 ** 가능한 가장 작은 ** XHTML 파일 및 Backing Bean 클래스입니다. 우리는 문제를 직접 보면서 변경하지 않고 복사 할 수 있습니다) . – BalusC

답변

-1

문제는 C 성분 인 많은 :. 구성 요소의 속성 렌더러에는 문제가 없습니다.