gpt4 book ai didi

java - 确定绝对id

转载 作者:行者123 更新时间:2023-12-02 00:11:39 25 4
gpt4 key购买 nike

如何确定organizationUnit的绝对ID(来自/webapp/resources/acme/organizationUnit.xhtml)?当我从树中选择一个节点时,organizationUnit 应显示所选节点。我无法使用相对 id,因为 p:ajax 元素与organizationUnit 组件不在同一命名容器中。在这种情况下我需要使用绝对 id。对于 Firebug,组件的 ID 为 tabs:0:editorsGroup:4:editor3:accountWindowsContainer:organizationUnit:form:tabs:editorsGroup:editor:accountWindowsContainer:organizationUnit 不是组件的绝对 id 吗?

编辑1

custom:include 配置如下:

<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
"http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
<facelet-taglib>
<namespace>http://acme.com/custom</namespace>
<tag>
<tag-name>include</tag-name>
<component>
<component-type>com.acme.custom.DynamicInclude</component-type>
<handler-class>com.acme.client.custom.tags.DynamicIncludeHandler</handler-class>
</component>
</tag>
</facelet-taglib>

@FacesComponent("com.geneous.custom.DynamicInclude")
public class DynamicInclude extends javax.faces.component.UIComponentBase{ ... }

public final class DynamicIncludeHandler extends javax.faces.view.facelets.ComponentHandler { ... }

使用Mojarra 2.0.8。

/WEB-INF/flows/actions-acc-flow/accounts.xhtml

<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
template="/WEB-INF/layouts/standard.xhtml">

<ui:define name="content">
<h:form id="form" prependId="false">
<!-- messages -->
<p:growl id="msgs" showDetail="true" />
...
<h:panelGroup id="mainPanel">
<ui:include src="/WEB-INF/flows/actions-acc-flow/genericAccountsTable.xhtml" />
</h:panelGroup>
</h:form>
</ui:define>
</ui:composition>

/WEB-INF/flows/actions-acc-flow/genericAccountsTable.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">

<h:outputScript library="primefaces" name="primefaces.js" />
<h:outputStylesheet library="primefaces" name="primefaces.css" />

<p:dataTable id="genericAccounts"
...
</p:dataTable>
<p:spacer height="1" />
<p:toolbar>
<p:commandButton value="#{label.add}"
action="#{accountsBean.initializeEntity}" immediate="true"
update=":form:actionsDialog :form:msgs"
oncomplete="actionsDialog.show()">
</p:commandButton>
</p:toolbar>
<ui:include src="/WEB-INF/flows/actions-acc-flow/mainDialog.xhtml" />
...
</ui:composition>

/WEB-INF/flows/actions-acc-flow/mainDialog.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">

<p:dialog id="actionsDialog" widgetVar="actionsDialog"
dynamic="true" modal="true">
...
<ui:include src="/WEB-INF/flows/actions-acc-flow/genericAccount.xhtml"/>
...
</p:dialog>
</ui:composition>

/WEB-INF/flows/actions-acc-flow/genericAccount.xhtml

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:custom="http://geneous.com/custom">
<p:tabView id="tabs" value="#{accountsBean.groups}" var="group">
<p:tab title="#{eval.getString(group.name)}">
<p:dataTable id="editorsGroup" value="#{group.editors}" var="editor">
<p:column>
<custom:include src="#{editor.component}" id="editor">
<ui:param name="beanName" value="#{editor.beanName}" />
<ui:param name="enabled" value="#{editor.enabled}" />
<ui:param name="mandatory" value="#{editor.mandatory}" />
<ui:param name="name" value="#{editor.name}" />
</custom:include>
</p:column>
</p:dataTable>
</p:tab>
</p:tabView>
</ui:composition>

/WEB-INF/flows/editors/accountsWindowsContainer.xhtml(此文件存储在 editor.component 中并包含在 genericAccount.xhtml 中)

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:acme="http://java.sun.com/jsf/composite/acme">

<acme:organizationUnit bean="#{windowsContainer}" mandatory="#{mandatory}"
name="#{name}" id="accountWindowsContainer" />
</ui:composition>

/webapp/resources/acme/organizationUnit.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<!-- INTERFACE -->
<composite:interface>
<composite:attribute name="bean" type="java.lang.Object" required="true" />
<composite:attribute name="mandatory" type="boolean" required="true"/>
<composite:attribute name="name" type="java.lang.String" required="true" />
</composite:interface>
<!-- IMPLEMENTATION -->
<composite:implementation>
<h:panelGrid columns="2">
<h:outputText value="#{cc.attrs.name}: #{cc.attrs.mandatory ? '*' : ''}" />
<p:tree value="#{cc.attrs.bean['root']}" var="node"
selectionMode="single" selection="#{cc.attrs.bean['selectedNode']}">
<p:ajax event="select" listener="#{cc.attrs.bean['onNodeSelect']}"
update="absolute_id_of_organization_unit" />
<p:treeNode>
<h:outputText value="#{node}" />
</p:treeNode>
</p:tree>
<h:outputText />
<p:inputText id="organizationUnit"
value="#{cc.attrs.bean['selectedItemPath']}"
disabled="true" />
</h:panelGrid>
</composite:implementation>
</html>

最佳答案

Isn't :form:tabs:editorsGroup:editor:accountWindowsContainer:organizationUnit the absolute id of the component?

仅当您删除时才会出现这种情况 prependId="false"来自<h:form>如果您能保证您的<custom:include>实现NamingContainer 。如果后者不正确,那么您需要删除 :editor绝对 ID 的一部分。

关于java - 确定绝对id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12688674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com