【问题标题】:<a4j:commandButton> doesn´t start the action<a4j:commandButton> 不启动操作
【发布时间】:2011-06-10 09:00:12
【问题描述】:

我需要使用a4j:commandButton 而不是h:commandButton,因为它有reRender 选项。

当我使用h:commandButton 时,它工作正常(但当然没有重新渲染):

<h:commandButton id="save" action="#{bean.save}" value="#{conf.buttonSave}"/>

同样的事情 using doesn't(即使使用我们的 reRender 选项也不会开始操作):

<a4j:commandButton id="save" action="#{bean.save}" value="#{conf.buttonSave}"/>

我也试过了:

<h:commandButton id="save" action="#{bean.save}" value="#{conf.buttonSave}">
 <a4j:ajax event="click" reRender="table" />
</h:commandButton>

但如果我添加a4j:ajaxa4j:commandButton 相同的问题,则不会开始操作。

你能帮帮我吗?

【问题讨论】:

  • a4j:commandButton 没有 reRender 属性。我不熟悉 Richfaces,但是如果您省略 reRender,预期的行为是什么?该按钮的行为是否类似于非 ajax 按钮?
  • 它应该根据 datalist 中的 chenges 重新渲染数据表.. 但问题是即使没有 reRender 选项 a4j:commandButton 也不会启动操作..
  • 好吧,我想你误解了我的评论。我的意思是您的示例中没有 reRender 属性。如果使用该属性会发生什么?
  • 啊哈,因为主要问题是它没有启动动作,重新渲染是次要问题...我已经编辑了我的帖子
  • 如果 ajax 有问题,如果单击浏览器中的按钮,通常会收到 javascript 错误。检查 java 控制台(开发工具)。

标签: ajax jsf jsf-2


【解决方案1】:

您标记了这个 JSF 2.0。因此,您使用的是 JSF 2.0。只需使用 JSF 2.0 内置的 &lt;f:ajax&gt; 标记即可。

<h:commandButton id="save" action="#{bean.save}" value="#{conf.buttonSave}">
    <f:ajax render="table" />
</h:commandButton>

注意&lt;h:dataTable id="table"&gt;必须在同一个&lt;h:form&gt;内。否则你需要render=":table"。另请注意,您必须在模板中使用 &lt;h:head&gt; 而不是 &lt;head&gt; 才能自动包含所有必需的 JavaScript。

【讨论】:

    猜你喜欢
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 2014-09-16
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 2016-07-25
    相关资源
    最近更新 更多