0

我在 jsf 中使用这个 ajax 调用

jQuery.ajax({

    url: '#{UserBean.searchUser}',
    type: 'POST',
    data: { firstName: firstName },
    success: function(data) {
        // render table
    },
    error: function(request, status, error) {
        //error description
    },
});

在这里我获得了成功,这意味着该动作被调用。我想从操作中检索用户列表,如何从操作中发送列表?返回数据后,我想渲染表中的所有数据,格式为:

<h:dataTable 
    var="o"
    id="tblResult" 
    cellpadding="10px" 
    cellspacing="0px" 
    styleClass="searchTable">

    <h:column>
        <f:facet name="header">
        <h:outputText value="Student Name" />
    </f:facet> 
        <h:outputText value="User1" />
    </h:column>

    <h:column>
        <f:facet name="header">
            <h:outputText value="Student Id" />
        </f:facet>
            <h:outputText value="user1" />
    </h:column>
</h:dataTable>

我无法使用

<f:ajax />

因为我的页面是.jsp。

4

1 回答 1

0

如果您已经在问这个问题,这并不容易。

您基本上需要创建一个自定义 Ajax 感知ViewHandler以及一个自定义 XMLResponseWriter自定义标记,它们生成所需的 JavaScript 代码来执行XMLHttpRequest工作和 HTML DOM 操作。这也是大多数第 3 方 JSF 1.x 组件库已经为您完成的工作。它们都是开源的,所以你可以看看它的源代码,通过例子来学习他们是如何做到的。但这需要扎实的知识和对 HTTP、HTML、XMLHttpRequest 和 JSF 生命周期如何工作的理解。如果你已经在问这个问题......

我强烈建议只从 JSP 迁移到 Facelets。JSP 自 JSF 2.0 以来已被弃用,所有新的 JSF 2.0 标记/功能均不适用于 JSP,而仅适用于 Facelets。此外,所有与 JSF 2.0 兼容的组件库都不再支持 JSP。

也可以看看:

于 2012-10-19T11:34:22.333 回答