我正在使用JDK1.7,JSF2和Primefaces。
我有一个.xhtml
,如下所示。我想将Parent and the Child Relations
列为<Component Id Tree Structure> | <Id> | <Child of Id- Parent>
,如Expected Output
xhtml:
<h:form id="rootParentForm">
<p:treeTable id="singleTreeTble" value="#{ttSelectionView.root1}" var="document" selectionMode="single" selection="#{ttSelectionView.selectedNode}" style="margin-top:0">
<f:facet name="header">
Single
</f:facet>
<p:column headerText="Name">
<h:outputText value="#{document.name}" />
</p:column>
<p:column headerText="Size">
<h:outputText value="#{document.size}" />
</p:column>
<p:column headerText="Type">
<h:outputText value="#{document.type}" />
</p:column>
</p:treeTable>
<p:commandButton id="singleCmdBtn" value="Display" update="msgs" icon="ui-icon-newwin"
actionListener="#{ttSelectionView.displaySelectedSingle}"/>
<h3 style="margin-top:0">Basic</h3>
<p:accordionPanel id="basicAP">
<p:tab id="basicTab1" title="Godfather Part I">
<h:panelGrid columns="2" cellpadding="10">
<p:graphicImage name="demo/images/godfather/godfather1.jpg" />
<h:outputText
value="The story begins as Don Vito Corleone..." />
</h:panelGrid>
</p:tab>
<p:tab id="basicTab2" title="Godfather Part II">
<h:panelGrid columns="2" cellpadding="10">
<p:graphicImage name="demo/images/godfather/godfather2.jpg" />
<h:outputText value="Francis Ford Coppola's legendary..." />
</h:panelGrid>
</p:tab>
<p:tab id="basicTab3" title="Godfather Part III">
<h:panelGrid columns="2" cellpadding="10">
<p:graphicImage name="demo/images/godfather/godfather3.jpg" />
<h:outputText value="After a break of more than 15 years..." />
</h:panelGrid>
</p:tab>
</p:accordionPanel>
<h3>Multiple Selection</h3>
<p:accordionPanel id="multipleAP" multiple="true">
<p:tab id="multipleTab1" title="Godfather Part I">
<h:panelGrid columns="2" cellpadding="10">
<p:graphicImage name="demo/images/godfather/godfather1.jpg" />
<h:outputText
value="The story begins as Don Vito Corleone..." />
</h:panelGrid>
</p:tab>
<p:tab id="multipleTab2" title="Godfather Part II">
<h:panelGrid columns="2" cellpadding="10">
<p:graphicImage name="demo/images/godfather/godfather2.jpg" />
<h:outputText value="Francis Ford Coppola's legendary..." />
</h:panelGrid>
</p:tab>
<p:tab id="multipleTab3" title="Godfather Part III">
<h:panelGrid columns="2" cellpadding="10">
<p:graphicImage name="demo/images/godfather/godfather3.jpg" />
<h:outputText value="After a break of more than 15 years...." />
</h:panelGrid>
</p:tab>
</p:accordionPanel>
</h:form>
预期输出
这样做的最佳方法是什么?因此,所有父母和子女关系都将按预期列出。
我将上传xhtml页面然后我想找到&amp;显示亲子关系。
答案 0 :(得分:1)
我相信,你应该:
使用FacesContext.getCurrentInstance()
;
使用当前实例的getViewRoot()
获取视图根目录 - 您将
获取UIComponent
的实例,其中包含visitTree()
方法;
使用UIComponent
实例的visitTree()
方法 - 传递回调
测试的功能,是否设置了id属性等。
您可能会发现与JSF Specifications捆绑在一起的JSF API文档很有用。
要执行所有操作,您需要将xhtml解析为组件树。如果是Facelets标记,javax.faces.view.facelets
包中的类和javax.faces.application.ResourceHandlerWrapper
一样有用。
如果上传的xhtml与服务器端应用程序无关,则还需要存根EL表达式。