2012-08-09 4 views
1

가능한 한 내 페이지를 사용자에게 친숙하게하고 아이디어를 얻지 만 해결 방법을 조금 더 세게 표현하겠습니다.JSF에서 oneMenu 요소를 outputText로 변경하는 방법

저는 primefaces를 사용하고 있으며 selectOneMenu에서 선택된 변수의 값으로 outputText 만 변경되는 selectOneMenu 요소를 갖고 싶습니다. 누구나 멋진 아이디어가 있습니까?

+0

사용자가 두 번째 값을 선택하지 못하게하려는 경우 값 변경을 사용 중지 할 수 있습니다. – rags

답변

1

이것은 아약스와 부분 렌더링으로 할 수 있습니다. 여기에 (검증되지 않은 및 일반 JSF에서) 내 생각의 스케치입니다 :

<h:panelGroup id="wrapper"> 
    <h:selectOneMenu value="#{myBean.myValue}" 
        rendered="#{myBean.myValue == someInitialValue}" ...> 
    <f:ajax render="wrapper"/> 
     ... (your select items here) 
    </h:selectOneMenu> 
    <h:outputText value="#{myBean.myValue}" 
       rendered="#{myBean.myValue != someInitialValue}" .../> 
</h:panelGroup> 

는 그리고 그것이 무엇입니다 : h:selectOneMenu의 값은 초기화됩니다

하고는 경우 메뉴는 렌더링됩니다 초기 값.

값이 변경되면 주변 패널 그룹이 다시 렌더링되고 메뉴가 숨겨져 h:outputText이 표시됩니다.

페이지로드시 outputText가 없으므로이 경우 래핑 패널 그룹이 필요합니다. 양식이 작 으면 [email protected] 또는 다른 주변 용기를 대신 사용할 수 있습니다. 그런 다음 래퍼가 필요하지 않습니다.

+0

답장을 보내 주셔서 감사합니다! 같은 방식으로 생각하고 있었지만 코드를 최소화하는 데 도움이되는 primefaces 속성이 있다고 생각했습니다. –

+0

예, 이것은 좋은 추가, 뭔가 [inplace] (http://www.primefaces.org/showcase-labs/ui/inplace.jsf) selectOneMenu .... [편집 : 오, 그냥 거기에 나타났습니다 지정된 링크의 선택 메뉴 어쩌면이 예제를 자세히 살펴 봐야 할 것입니다. –

관련 문제