gpt4 book ai didi

java - JSF Ajax 更新使 commandLink 在第一次单击时失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:26:32 24 4
gpt4 key购买 nike

在我的 JSF 页面中,我有一个组合框,它会在选择组合框的项目时更新表格。

该表包含带有编辑链接的项目。

问题是当组合框更改表格时,您需要在链接上单击两次才能转到页面。第一次点击只是刷新页面。

这是 xhtml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<body>
<ui:composition template="/template.xhtml">
<ui:define name="windowTitle">Comment packages</ui:define>
<ui:define name="content">
<h3>Select the package to comment.</h3>
<h:form prependId="false">
Section:
<h:selectOneMenu id="selectSection" value="#{platformService.currentSection}">
<f:ajax render=":list-packages" />
<f:selectItems value="#{platformService.releasePlatform.sections}" />
</h:selectOneMenu>
</h:form>
<p/>
<h:panelGroup id="list-packages">
<h:dataTable id="packageList" var="package" value="#{packageService.packages}" border="1" >
<h:column>
<f:facet name="header">Package name</f:facet>
#{package.name}
</h:column>
<h:column>
<h:form>
<h:commandlink action="#{commentService.commentPackage}" value="Comment">
<f:param name="packageName" value="#{package.name}" />
</h:commandLink>
</h:form>
</h:column>
</h:dataTable>
</h:panelGroup>
</ui:define>
</ui:composition>
</body>
</html>

我也尝试过使用 commandButton,但您还需要在按钮上单击两次。

我在 Maven/Jetty 中运行 JSF 2.0.1-FCS。

最佳答案

当您将表格放在单个 <h:form> 中时,它会起作用.删除内部 <h:form>从列中替换 <h:panelGroup id="list-packages">通过 <h:form id="list-packages"> .

我不确定这个问题是如何/为什么导致的(需要更多时间来调查),但这可能与以下事实有关:表的状态对于了解选择了哪一行很重要。

关于java - JSF Ajax 更新使 commandLink 在第一次单击时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3658304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com