这是我的问题。我有一个Java EE 6 Web应用程序,GUI在PrimeFaces中完成。我们不得不切换到Java EE 7,因此我们可以使用GlassFish4。
pom.xml文件中的所有转换几乎都在变化/添加versins / packages。但是现在 - 在数据库中进行搜索按预期工作 - 数据显示在表中,但是如果我不手动刷新页面,则显示来自搜索(结果表)的数据的对话框不起作用。
一旦我在工作,我会提供一些代码,但是现在有什么我应该考虑或检查的吗?
提前谢谢。
更新
更清楚问题:
这里是代码:
<h:form id="searchform">
...
<p:commandButton value="Search data" action="#{searchDataBean.searchData}" styleClass="button positive" update="@form" >
</p:commandButton>
<p:commandButton value="Clear fields" styleClass="button negative" update="@form" action="#{searchDataBean.clearFields}">
</p:commandButton>
...
<p:dataTable
value="#{searchDataBean.similarData}"
paginator="true"
var="item"
style="width: 100%"
id="alleSucheTreffer"
paginatorTemplate="All: #{searchDataBean.similarData.rowCount} Results {CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
resizableColumns="true"
rows="10"
rowKey="#{item.id}"
selectionMode="single"
rendered="true">
这一直有效,直到您进行第一次搜索,然后每当您选择搜索数据时,表单中的下拉列表都会重新设置,并且数据表不会更新。
在每行的数据表中都有一个按钮:
<p:commandLink styleClass="button positive" update=":detailsDialog" oncomplete="dialog1.show()" actionListener="#{searchDataBean.clearWorkerStatus}">
<span class="ui-icon ui-icon-search"> </span>
<f:setPropertyActionListener value="#{item}" target="#{searchDataBean.details}" />
</p:commandLink>
它必须显示dialog1 - witch包含有关所选行(DataEntity)的完整信息。 h:具有id搜索表单的表单在对话框之前结束。
<p:dialog id="detailsDialog" header="Data Details" dynamic="true" widgetVar="dialog1" hideEffect="explode" modal="true">
<f:facet name="header">
<h:outputText value="Data ID: #{searchDataBean.details.id}" style="background: transparent; font-weight: bold; font-size: 1.2em;" />
</f:facet>
<f:facet name="closeIcon">
test
</f:facet>
<h:form>
...
来自searchDataBean的方法searchData检查表单中的字段,创建HashMap并将其发送到DAO,结果存储在私有变量中(getter和setter在那里)并作为DataModel返回(PrimeFaces需要作为ListDataModel)。
我怀疑该按钮的“update”参数在Java EE 6中无法正常工作?