【问题标题】:how to rerender a4j:commandLink after the action has been completed操作完成后如何重新渲染 a4j:commandLink
【发布时间】:2013-06-02 18:22:32
【问题描述】:

我这里有一个非常简单的代码:

<a4j:commandLink action="#{ticketAboxEventHelper.removeAboxTicket(ticketAbox)}"
                             onclick="if(!confirm('Are you sure ... ?')) return false;"
                             reRender="aboxlistpanel">
                        <h:graphicImage alt="Delete" url="../../img/dialog-error-5.png" title="Delete" />
                        <a4j:support event="oncomplete" 
                                     action="#{editTicketNewAction.testRerender()}" 
                                     reRender="aboxlistpanel"
                                     />
</a4j:commandLink>

当系统点击链接时必须

  1. 询问用户是否确认
  2. 行动
  3. 重新渲染 aboxlistpanel

现在我的问题是在动作完成之前重新渲染正在发生。知道如何以正确的方式完成吗?

【问题讨论】:

  • 您是否尝试过从您的&lt;a4j:commandLink&gt; 中删除&lt;a4:support&gt;
  • 是的,它首先重新渲染然后执行操作,但我希望先执行操作然后重新渲染
  • 这真的很奇怪。执行顺序为onclickactionreRenderoncomplete。您确定没有其他组件也会触发 aboxlistpanel 或整个页面的重新呈现吗?
  • &lt;a4j:log /&gt; 可以帮助您查看 AJAX 阻塞的位置...
  • action="#{editTicketNewAction.testRerender()}" 这不是 JSF 1.2 有效的,我是对的吗?

标签: jsf richfaces jsf-1.2 seam2


【解决方案1】:

您的操作方法对 JSF 1.2 无效,并且您不需要 &lt;a4j:support&gt;。既然要传参数,就应该使用&lt;f:attribute /&gt;actionListener

<a4j:commandLink actionListener="#{ticketAboxEventHelper.removeAboxTicket}" onclick="if(!confirm('Are you sure ... ?')) return false;" reRender="aboxlistpanel">
    <h:graphicImage alt="Delete" url="../../img/dialog-error-5.png" title="Delete" />
    <f:attribute name="ticket" value="#{ticketAbox}" />
</a4j:commandLink>

您的 bean 方法将如下所示:

public void removeAboxTicket(ActionEvent event)
{
    TicketAbox ticket = (TicketAbox)event.getComponent().getAttributes().get("ticket");

    // Your business logic
}

更多信息:

【讨论】:

  • 不,它很好,我正在使用 seam 2 和 jboss el 表达式,所以它们工作正常。不过还是感谢您的意见
【解决方案2】:

解决了。我将有问题的 JSF 代码包装在 a 中,一切都开始按预期工作。与答案<a4j:commandLink> Not Rerendering 相关。我先解决了它,然后发现其他人以同样的方式解决了它。嗯……

【讨论】:

    猜你喜欢
    • 2011-01-20
    • 2011-04-25
    • 2016-04-17
    • 2019-04-27
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    相关资源
    最近更新 更多