【发布时间】:2014-05-06 13:45:19
【问题描述】:
我正在使用 Eclipse 和 Apache Tomcat 使用 Java EE、JSF、Hibernate、MySQL 编写 Web 应用程序。我不使用 Spring、EJB 等。
一开始,我看到组件的 id 写在下面的“渲染”部分代码中,这些组件被更新了。但是,经过一些代码开发,我意识到 f:ajax 不再更新这些组件了。此外,没有触发 bean 中的函数(prepareTempUsrGrp 和 prepareTempUsr) - “adminPanelFacade”。我回到了可以正常工作的应用程序版本,但现在那个版本也不能工作了!
<input jsfc="h:commandButton" id="usrGrpHiddenBtn" class="hiddenBtn" action="#{adminPanelFacade.prepareTempUsrGrp}">
<f:ajax execute="adminPanelForm" render="grpDetNameInp managerPanel planMngmnt alarmMngmnt raporMngmnt devRegMngmnt energyCons mntnncLifeTime logMngmnt" />
</input>
<input jsfc="h:commandButton" id="usrHiddenBtn" class="hiddenBtn" action="#{adminPanelFacade.prepareTempUsr}">
<f:ajax execute="adminPanelForm" render="usrDetUsrName usrDetUsrGrpName usrDetPass usrDetFName usrDetLName usrDetAddress usrDetTel usrDetMail" />
</input>
一些组件示例;
...
<tr class="grpDetTblRghtRow">
<td>
<input jsfc="h:selectBooleanCheckbox" id="managerPanel" title="Yönetici Paneli" value="#{adminPanelFacade.tempUsrGrp.ADMINISTRATOR_SCR}" />
</td>
<td>
<span jsfc="h:outputText" value="Yönetici Paneli"/>
</td>
</tr>
<tr class="grpDetTblRghtRow">
<td>
<input jsfc="h:selectBooleanCheckbox" id="planMngmnt" title="Planlama Yönetimi" value="#{adminPanelFacade.tempUsrGrp.PLANNING_SCR}" />
</td>
<td>
<span jsfc="h:outputText" value="Planlama Yönetimi"/>
</td>
</tr>
<tr class="grpDetTblRghtRow">
<td>
<input jsfc="h:selectBooleanCheckbox" id="alarmMngmnt" title="Alarm Yönetimi" value="#{adminPanelFacade.tempUsrGrp.ALARM_MNGMNT_SCR}" />
</td>
<td>
<span jsfc="h:outputText" value="Alarm Yönetimi"/>
</td>
</tr>
...
如果我删除 f:ajax 行,它会起作用并且 bean 的功能会被触发。但是,我不想刷新所有页面。我只想更新特定的组件,所以我需要这个解决方案。 我知道组件 ID 是正确的。此外,我在控制台上没有看到任何 Java 异常。
我从 Eclipse 中删除了服务器配置。我删除了 Tomcat 7.0 并重新安装。我在 Eclipse 中创建了新服务器。然而,什么也没发生。还是不行!
非常感谢所有反馈!
编辑: 有新信息!该应用程序在另一台计算机上正常工作,就像在我上次代码开发之前在我的计算机上工作一样。我的浏览器、Eclipse、Tomcat 等可能有任何损坏吗?虽然我解决了这个问题,但是当我继续在我的代码中使用 f:ajax 时,浏览器、Eclipse 等是否存在损坏的风险?
解决方案: 这太奇怪了,但是在我的应用程序的基础结构进行了一些不同的更改后,问题就解决了。 1)我将Tomcat 7.0从32位版本升级到64位版本。 2)我将在服务器端(localhost)工作的JSF库从(jsf-api-2.2.0-m03.jar和jsf-impl-2.2.0-m03.jar)升级到(jsf-api- 2.2.6.jar 和 jsf-impl-2.2.6.jar) 3)升级后,它没有工作。然后,我更改了 .xhtml 页面的 form-id。我运行了应用程序,我看到它有效!然后,我改回了form-id。它仍然有效!
我认为我工作的系统(Eclipse、JSF 库或 Tomcat)的基础架构存在错误。希望以后不会再遇到这样的错误。
【问题讨论】:
标签: java ajax eclipse jsf tomcat