我想更新其他组件但是找不到它们。如何设置路径?
我总是收到以下留言:Cannot find component with identifier ":test" referenced from "tabViewCompAll:inboxTable"
。
我正在使用JSF 2.1
和Primefaces 3.5
这是我的代码:
<ui:define name="contentLeft">
<p:tabView id="tabViewPosts">
<p:tab title="Inbox">
<p:dataTable id="inboxTable" var="task"
value="#{taskboxBean.taskboxList}" paginator="true" rows="10"
selection="#{taskboxBean.taskbox}"
selectionMode="single" rowKey="{task.TB_ID}">
<p:ajax event="rowSelect" update=":test"
/>
<p:column headerText="Post">
<h:outputText
value="#{task.FROM_USER.FIRST_NAME} #{task.FROM_USER.LAST_NAME} (#{task.FROM_USER.EMAIL})" />
<br />
<h:outputText value="#{task.TASKTYPE.NAME}" />
<br />
<h:outputText value="#{task.CREATE_TIMESTAMP}" /> </p:column>
</p:dataTable>
</p:tab>
</p:tabView>
</ui:define>
<ui:define name="contentRight">
<div id="test">
<p:commandButton value="New Message"/>
<h:outputText value="#{taskboxBean.taskbox.FIRST_NAME} #{taskboxBean.taskbox.LAST_NAME} "/>
<h:outputText value="(#{taskboxBean.taskbox.EMAIL})"/>
<h:outputText value="#{taskboxBean.taskbox.TASKTYPE.NAME}"/>
<h:outputText value="#{taskboxBean.taskbox.CREATE_TIMESTAMP}}"/>
</div>
</ui:define>
答案 0 :(得分:2)
大家好,现在收到以下消息"DataModel must implement org.primefaces.model.SelectableDataModel when selection is enabled or you need to define rowKey attribute".
但是我设置了一个rowkey。 我更改了以下代码:
<ui:define name="title">
<h:outputText value="Taskbox" />
</ui:define>
<ui:define name="contentLeft">
<h:form id="postForm">
<p:inputText id="searchText" value="#{taskboxBean.search}" />
<p:watermark for="searchText" value="Search" />
<p:commandButton id="searchButton" value="GO"
actionListener="#{taskboxBean.searchPosts}" />
<p:tabView id="tabViewPosts">
<p:tab title="Inbox">
<p:dataTable id="inboxTable" var="task"
value="#{taskboxBean.taskboxList}" paginator="true" rows="10"
selection="#{taskboxBean.taskbox}"
selectionMode="single" rowKey="{task.TB_ID}" emptyMessage="">
<p:ajax event="rowSelect" update=":contentForm"
listener="#{taskboxBean.onTaskboxRowSelect}"/>
<p:column headerText="Post">
<h:outputText
value="#{task.FROM_USER.FIRST_NAME} #{task.FROM_USER.LAST_NAME} (#{task.FROM_USER.EMAIL})" />
<br />
<h:outputText value="#{task.TASKTYPE.NAME}" />
<br />
<h:outputText value="#{task.CREATE_TIMESTAMP}" />
</p:column>
</p:dataTable>
</p:tab>
</p:tabView>
</h:form>
</ui:define>
<ui:define name="contentRight">
<h:form id="contentForm">
<p:commandButton value="New Message"/>
<h:outputText value="(#{taskboxBean.taskbox.EMAIL})"/>
</h:form>
</ui:define>
</ui:composition>