一些背景:我的.xhtml页面中有两个'h:dataTable'元素。当用户右键单击第一个数据表中的单元格时,该页面将显示上下文菜单。从此上下文菜单中选择特定菜单项应理想地更新其他数据表的内容。
为了实现这一点,我在JQuery中创建了一个javascript函数,它使用jsf.ajax.request()向我的支持bean发送一个AJAX请求。此调用如下所示:
jsf.ajax.request($eventCell, null, {execute: 'selectedRowId selectedColumnId',
render: bugsTable,
assignBugMode : "1",
reportsToCompare : $('input[id$="reportsToCompare"]').val(),
cellRowId: $.trim($rowId),
cellColumnId: $.trim($columnId)
});
这里,“bugsTable”是第二个h:dataTable元素的id,需要在AJAX调用返回后更新。 “selectedRowId”和“selectedColumnId”是.xhtml页面上的'h:inputText'元素,我需要在服务器端处理这些元素,以便计算要在bugsTable中显示的正确值。
我观察到的是:当我向服务器发送AJAX请求时,JSF生命周期的执行部分被正确执行,但“bugsTable”元素没有得到更新。在firebug中,我可以看到AJAX请求导致服务器的响应:
<partial-response>
<changes>
<update id="javax.faces.ViewState">2177233720285299449:-1589577009450482760</update>
</changes>
<extension primefacesCallbackParam="validationFailed">{"validationFailed":false}</extension>
</partial-response>
我做错了什么?