我有一个Facelet,它有一个名为"gameinfo"
的div,通过点击某个按钮,这个div应该用Ajax重新加载。
问题:
调用不起作用,它会抛出以下错误:
<f:ajax> contains an unknown id 'gameinfo' - cannot locate it in the context of the component dice
我不知道如何修复它,也许div需要更接近按钮,或者只能使用ajax调用h:namespace中的元素?
代码:
<div id="gameinfo" class="info">
<h2>Spielinformationen</h2>
<table summary="Diese Tabelle zeigt Informationen zum aktuellen Spiel">
<tr><th id="leaderLabel" class="label">Führender</th><td id="leader" class="data"><h:outputText value="#{spiel.getLeader()}" /></td></tr>
<tr><th id="roundLabel" class="label">Runde</th><td id="round" class="data"><h:outputText value="#{spiel.getRound()}" /></td></tr>
<tr><th id="timeLabel" class="label">Zeit</th><td id="time" class="data"><h:outputText value="#{spiel.getTime()}" /></td></tr>
<tr><th id="computerScoreLabel" class="label">Würfelergebnis <em>Super C</em></th><td id="computerScore" class="data"><h:outputText value="#{spiel.getComputerScore()}" /></td></tr>
</table>
<h2>Spieler</h2>
<table summary="Diese Tabelle listet die Namen der Spieler auf">
<tr><th id="player1NameLabel" class="label">Spieler 1</th><td id="player1Name" class="data">Super Mario</td></tr>
<tr><th id="player2NameLabel" class="label">Spieler 2</th><td id="player2Name" class="data">Super C</td></tr>
</table>
</div>
Ajax Call:
<div id="player" class="player">
<h2 class="accessibility">Würfelbereich</h2>
<span class="accessibility">An der Reihe ist</span><div id="currentPlayerName">Super Mario</div>
<h:form id="form">
<h:commandButton id="dice" alt="Würfel mit einer Eins" image="resources/img/wuerfel1.png" action="#{spiel.dice()}" tabindex="4" title="Würfel mit einer Eins">
<f:ajax render="gameinfo" />
</h:commandButton>
</h:form>
</div>
编辑:解决了!我将<div>
更改为<h:Panelgroup>
并删除了按钮所在的<h:form>
。
答案 0 :(得分:1)
<f:ajax
应指向JSF组件
替换
<div id="gameinfo" class="info">
用
<h:panelGroup layout="block" id="gameinfo" styleClass="info">
<h:panelGroup layout="block"
将变为html div