2014-03-25 8 views
0

다음은 <h:selectOneMenu>의 코드입니다.
backing bean execdirectorRC = "XXXvalue"에 값을 할당 한 후 해당 값을 i 업 bean에서 갱신하려고합니다. 여기에서 executivedirectorslist에는 목록 값이 있습니다. 여기JSF - 백킹 빈에서 <h : selectOneMenu> 값을 업데이트하는 방법


내가 백업 빈에서 값을 UDPATE하려고 코드 형태로 여기

<h:form id="ipdpform"> 
    <h:selectOneMenu id="exedirectors" value="#{Bean.execdirectorRC}"> 
    <f:selectItems value="#{Bean.executivedirectorslist}" 
     var="s" itemLabel="#{s.label}" itemValue="#{s.value}" /> 
    <p:ajax listener="#{Bean.getDirectReporters}" 
     update="rpt2 :growl :error" execute="@this" 
     partialSubmit="true" /> 
    <f:param name="rpt1" value="rpt1" /> 
    </h:selectOneMenu> 
</h:form > 

의 코드입니다

RequestContext context = RequestContext.getCurrentInstance(); 
       execdirectorRC = "XXX,Name"; 
       context.update("ipdpform:exedirectors"); 
내 문제는 값입니다


"XXX , Name "은 <h:selectOneMenu>.에 유포되지 않으며 Bean.executivedirectorslist에 이미 값이 있습니다. 어떻게 백킹 빈에서 업데이트 할 수 있습니까?

답변

0

다음과 같은 정적 유틸리티 기능을 사용할 수 있습니다.

public static void addWillBeUpdatedComponent(final String componentId) { 
     FacesContext.getCurrentInstance().getPartialViewContext() 
       .getRenderIds().add(componentId); 
    } 

public static void removeWillBeUpdatedComponent(final String componentId) { 
     FacesContext.getCurrentInstance().getPartialViewContext() 
       .getRenderIds().remove(componentId); 
} 

componentId이 형식 form:componentId하지 :form:componentId에 있어야합니다.

+0

감사합니다. 그러나 제가 언급 한 것과 같은 위의 방법 이외의 다른 방법이 있습니까? context.update ("ipdpform : exedirectors"); ? – techy360

+0

이것은 도움이 될 수 있습니다 [link] (http://www.primefaces.org/showcase/ui/requestContext.jsf) – erk

+0

감사합니다 erk.But 코드가 이런 방식으로 작동하지 않습니까? RequestContext context = RequestContext.getCurrentInstance() ; execdirectorRC = "XXX, Name"; context.update ("ipdpform : exedirectors"); – techy360