int*_*boy 3 jsf java-ee primefaces
我正在创建带有Primefaces的JSF应用程序。基本上我有这种看法。有一个选项卡视图,其中每个选项卡都包含一个命令按钮和一个手风琴面板(另一种选项卡视图)。在其他元素中,手风琴面板的选项卡包含每个命令按钮。我的问题是,第一个命令按钮(在1级选项卡下)在单击时正确调用了操作方法,而第二个按钮(在2级选项卡下)未正确调用。我应该说tabView和AccordionPanel都正常工作,因为它们正在显示应显示的信息。
我正在发布视图的简化版本,以便您可以看到正在发生的事情。
<h:form>
<p:tabView id="unitTabs" orientation="left" dynamic="true" cache="false" var="unit" value="#{unitController.getUnitsOfLoggedInUser(loginController.checkedUser)}">
<p:tab id="unitTab" title="#{unit.unitName}">
<p:commandButton value="Add Lecture" action="#{unitController.setTemporary(unit)}" onclick="createLectureDialog.show()">
<p:accordionPanel id="lectureTabs" value ="#{lectureController.getLecturesForUnit(unit)}" var="lecture" dynamic="true" cache="false">
<p:tab title="#{lecture.lectureName}">
<p:commandButton value="Add Criterion" action ="#{lectureController.setTemporary(lecture)}" onclick="createCriterionDialog.show()" >
</p:tab>
</p:accordionPanel>
</p:tab>
</p:tabView>
</h:form>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢
该构建需要的是,在EL表达式value
的属性<p:tabView>
和<p:accordionPanel>
返回完全相同的处理形式中值提交,因为它是在初始显示期间。
如果Bean是请求范围的和/或该值在后台依赖于基于请求的参数或变量,因此它在每个请求上返回不同的值,则它将失败,因为JSF无法找到被调用的按钮。要对其进行修复,需要将bean放置在视图范围内,并且getter方法不应包含任何业务逻辑,或者应在后续请求中保留任何基于请求的参数或变量。
归档时间: |
|
查看次数: |
10416 次 |
最近记录: |