如何使commandButton不重新加载/刷新页面

时间:2013-10-29 13:01:16

标签: javascript ajax jsf

实际上我有一个输入,我想发送没有页面重新加载的请求(可能是Ajax)。我的代码如下,但首先我需要说我已经看到this question并且它没有解决我的问题。

以下是我的代码:

<h:form>
    <div class="form-group">
        <div class="col-md-10">
            <h:inputText styleClass="form-control" id="disciplina" value="#{disciplinaMBean.nome}" valueChangeListener="#{disciplinaMBean.atualizarListagemPesquisa}">
                 <f:ajax event="keyup" render=":meuForm:minhaTabela"/>  
            </h:inputText>
        </div>
        <div class="col-md-2">
            <h:commandButton value="Adicionar" styleClass="btn btn-md btn-success" action="#{disciplinaMBean.cadastrar}">
                 <f:ajax event="click" execute="@form" render=":meuForm:minhaTabela"/>
            </h:commandButton>
        </div>
    </div>
</h:form>

“渲染”用于更新我页面中的dataTable。

那么,我做错了什么?

记住,我想:

  1. 当用户插入文本并单击按钮时,请正常发送表单。
  2. 但是在发送请求/表单时,请不要刷新/重新加载页面。
  3. 谢谢!

1 个答案:

答案 0 :(得分:0)

答案发现:

我在Google搜索并找到了一些解决方案,因此我根据问题调整了答案。

以下是我最新的代码:

<h:form id="inserirDisciplina">
    <h:inputText id="disciplina" value="#{disciplinaMBean.nome}" />
    <h:commandButton value="Adicionar" action="#{disciplinaMBean.cadastrar}">
        <f:ajax event="click" listener="#{disciplinaMBean.cadastrar}"/>
    </h:commandButton>
</h:form>

如果您遇到同样的问题,可能需要的是f:ajax属性中带有#{yourBean.yourMethod}的标记listener