自定义javascript Ajax调用后刷新JSF组件

Mat*_*ley 1 ajax jsf

我在jsf页面中有一个自定义的javascript Ajax调用.我在过滤器中捕获并处理XMLHttpRequest的查询字符串.过滤器将记录添加到模型中的表中.现在我希望没有完整页面刷新的jsf页面在其中一个组件(Primefaces数据表)中反映更新的模型.

我想我需要的是一个自定义的xmlHttpResponse ...

谁能告诉我怎么做?我很害怕它可能很复杂,但我别无选择,只能使用自定义的javascript ...

Bal*_*usC 5

PrimeFaces <p:remoteCommand>专为此目的而设计.

这是您特定情况的基本启动示例:

<h:form>
    <p:remoteCommand name="updateTable" action="#{bean.updateTable}" 
        process="@this" update="table" />
    ...
    <p:dataTable id="table">...</p:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)

它生成一个JS函数updateTable(),它将调用该#{bean.updateTable}方法并使用(相对)客户端ID更新组件table.您只需updateTable()在JavaScript上下文中调用该函数即可.

updateTable();
Run Code Online (Sandbox Code Playgroud)

您甚至可以在必要时传递请求参数,它必须作为JS对象发送:

updateTable({ name1: "value1", name2: "value2 });
Run Code Online (Sandbox Code Playgroud)

无需摆弄自制的ajax请求并保持JSF状态同步.

  • BalusC ......我爱你. (2认同)