안녕하세요 풍부한 열고 싶은 모든 사람 :조건부 호출 : 팝업 패널
onclick="#{searchBackingBean.showLoginPanel==true ? #{rich:component('loginPopup')}.show();':''}"
그러나 내가지고있어 오류 : 나는 시도하고 실제로 무엇을, 조건식 내부 popupPanel이 같은 것입니다 EL과 관련이 있다면 어떻게해야 제대로 쓸 수 있습니까? 고마워요.
안녕하세요 풍부한 열고 싶은 모든 사람 :조건부 호출 : 팝업 패널
onclick="#{searchBackingBean.showLoginPanel==true ? #{rich:component('loginPopup')}.show();':''}"
그러나 내가지고있어 오류 : 나는 시도하고 실제로 무엇을, 조건식 내부 popupPanel이 같은 것입니다 EL과 관련이 있다면 어떻게해야 제대로 쓸 수 있습니까? 고마워요.
당신은 수도 없습니다 둥지 EL 식입니다. 나는 조건이 자바 스크립트에 위임 될 수 있도록 다음과 같이 표현을 재 작성하는 것이 좋습니다 :
이onclick="if (#{searchBackingBean.showLoginPanel}) #{rich:component('loginPopup')}.show();"
(이 메소드가 리턴과 같은 말이 없기 때문에 나는 불필요한 == true
비교를 제거주의하십시오/이미 부울 값을 출력 그들은 on*
특성을 향상대로 <rich:xxx>
및 <a4j:xxx>
구성 요소에서이 유일한 작품은 포스트 백에 EL 식을 다시 평가하는 것을)
참고. 표준 JSF <h:xxx>
구성 요소는 그렇게하지 않습니다. rendered
속성을 사용하여이를 해결해야합니다.
<h:commandButton>
<f:ajax render="script" />
</h:commandButton>
<h:panelGroup id="script">
<h:panelGroup rendered="#{searchBackingBean.showLoginPanel}">
<script>#{rich:component('loginPopup')}.show();</script>
</h:panelGroup>
</h:panelGroup>
내가 할 일은 panelGroup 또는 렌더링 할 수있는 다른 컨테이너 내부에 패널을 배치하는 것입니다. 그런 다음 조건에 따라 해당 컨테이너의 렌더링 된 플래그를 설정하고 표시해야 할 경우 해당 컨테이너의 렌더링을 호출합니다. 이 같은
뭔가 :
<a4j:commandButton ... render="popup"/>
<a4j:outputPanel id="popup" rendered="#{searchBackingBean.showLoginPanel}">
<script>
#{rich:component('loginPopup')}.show();
</script>
</a4j:outputPanel>
MAG, 밀로 반 데르 지
그런 EL 표현식을 중첩 할 수 없습니다. –