我对JSF2呈现动作有很大的问题。 我使用一个简单的c:forEach迭代List。此列表包含itens,这些项目具有更多Itens的列表。所以它是一个嵌套的c:forEach。子列表有一个输入字段,一旦保存,就必须转到bean,保存这个新输入,然后返回带有更新列表的屏幕。 没什么好复杂的。当我调试将List发送回视图的方法时,我看到所有信息都是正确的。 所以这里我们讨论这个问题:commandButton第一次正常工作。但是,如果我在刷新后尝试单击列表上的另一个按钮,则该按钮不会调用我的方法。什么是奇怪的是,该动作确实将它发送到bean(它通过我的@PostConstruct方法),但不会调用我想要的方法。
代码:
<c:forEach var="pub" items="${publicacaoCidadeController.listaPublicacao}" varStatus="status">
<div>message from first list : ${status.count} <br/>
<h:outputLabel value="#{pub.publicacao.mensagem}" />
<br/><br/>message from second list :<br/>
<h:form>
<f:ajax event="action" execute="@form" render="@all">
<c:forEach id="test2" var="com" items="#{pub.publicacao.comentarioList}" >
<div>
<h:outputLabel value="#{com.mensagem}" />
</div>
</c:forEach>
<div>
<h:inputTextarea value="#{publicacaoCidadeController.msgComentarioNovo}" />
<div >
<h:commandButton type="submit" value="Postar" action="#{publicacaoCidadeController.salvarComentario}" >
<f:param name="codPublicacao" value="#{pub.publicacao.codPublicacao}"/>
<f:param name="postNum" value="${status.count}"/>
</h:commandButton>
</div>
</div>
</f:ajax>
</h:form>
</div>
</c:forEach>
任何想法的人?
答案 0 :(得分:0)
尝试使用ui:repeat
标记。
c:foreach
是构建视图标记,ui:repeat
是渲染标记。
按下命令按钮后,jsf-tree不会重建......
如果你包含ui:debug
标签,你可以查阅de jsf-tree并调查发生了什么....