우리는 PrimeFaces 3.3.1, Mojarra 2.1.10 및 Tomcat 7.0.26을 사용합니다.Primefaces tab 변경 알림
응용 프로그램의 모든 구성 요소는 프로그래밍 방식으로 만들어지고 페이지의 루트 구성 요소 만 바인딩됩니다. 이 페이지입니다 - 템플릿의 일부 - 루트 구성 요소에 바인딩, 패널 인 RootPanel라고 :이 방법을 tabChanged있다
mainTabbedPane = new TabView();
mainTabbedPane.setId("formErpMainTabViewId");
mainTabbedPane.setStyle("height: 100%; width: 100%;");
AjaxBehavior ajaxBehavior = new AjaxBehavior();
MethodExpression methodExpression = FacesUtil.createMethodExpression("#{formerpmain.tabChanged}", Void.class, new Class<?>[]{TabChangeEvent.class});
ajaxBehavior.addAjaxBehaviorListener(new AjaxBehaviorListenerImpl(methodExpression));
ajaxBehavior.setListener(methodExpression);
ajaxBehavior.setUpdate(":initForm:formErpMainTabViewId");
mainTabbedPane.addClientBehavior("tabChange",ajaxBehavior);
: 우리가 프로그래밍 TabView의 컴포넌트를 생성하는 방법이있다
<ui:composition template="/layout/template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:porta="http://java.sun.com/jsf/composite/porta"
xmlns:p="http://primefaces.org/ui">
<ui:define name="body">
<h:messages globalOnly="true" styleClass="message" />
<p:ajaxStatus onstart="statusDialog.show();"
onsuccess="statusDialog.hide();" />
<p:dialog modal="true" widgetVar="statusDialog" header=".::."
draggable="false" closable="false">
<p:graphicImage value="/img/progressbar.gif" />
</p:dialog>
<h:form id="initForm" name="initform">
<p:panel id="rootPanelId" binding="#{applicationErp.rootPanel}"
rendered="true">
</p:panel>
</h:form>
</ui:define>
</ui:composition>
을 :
public void tabChanged(TabChangeEvent event){
requestPartialRendering();
}
위의 MethodExpression에 지정된 메소드 tabChanged는 탭 변경시 절대로 호출되지 않습니다. 탭 변경시 호출 할 메서드를 지정하는 올바른 방법입니까? 탭에서 호출 할 빈 메소드를 변경하는 방법은?
프로그래밍 구성 요소를 생성하기위한 어떤 특별한 이유가 있습니까? – siebz0r
예, 그렇습니다. 우리는 ERP 시스템을 구축하고 있습니다. 우리는 레이아웃, 컴포넌트의 팩토리 메소드 등을 지정하는 추상 클래스를 사용합니다. Swing, Android, PrimeFaces (Web) 등 다양한 플랫폼을위한 추상 클래스를 확장하는 특정 클래스도 있습니다. 이러한 접근 방식을 통해 우리는 이러한 모든 플랫폼에서 신속하게 개발하고 쉽게 변경할 수 있습니다. – zlaja