这是我的问题。我有一个 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 - 女巫包含有关所选行(DataEntity)的完整信息。h:form with id searchform 在对话框之前结束。
<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)。
我怀疑按钮的“更新”参数在 Java EE 6 中没有像预期的那样工作?