我在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。
答案 0 :(得分:0)
如果您已经提出这个问题,这并不容易。
您基本上需要创建一个自定义Ajax感知ViewHandler
和一个自定义XML ResponseWriter
和custom tags,它们会生成所需的JavaScript代码来执行XMLHttpRequest
工作和HTML DOM操纵。这也是大多数第三方JSF 1.x组件库已经为您完成的。它们都是开源的,因此您可以只看一看其源代码,以便通过示例了解它们是如何做到的。但这需要扎实的知识和对HTTP,HTML,XMLHttpRequest和JSF生命周期如何工作的理解。如果你已经问过这个问题......
我强烈建议migrate from JSP to Facelets。由于JSF 2.0和所有新的JSF 2.0标记/功能不适用于JSP,但仅适用于Facelets,因此不推荐使用JSP。此外,所有与JSF 2.0兼容的组件库都不再支持JSP。