我有一个数据表,其中第一列包含一些链接,以显示每个项目的详细信息。我正在使用f:ajax将请求发送到动作监听器。
虽然它确实是第一次工作(当我单击第一个链接或任何链接时),但此后它停止工作并且没有请求发送到动作侦听器。
<h:commandLink value="#{inquiry.myObject.property}"
actionListener="#{myBean.getDetail}">
<f:param name="someName" value="#{someBean.someName}"/>
<f:ajax
render=":#{p:component('infoDisplay')}
:#{p:component('addFieldSet')} :#{p:component('myDetailsId')}" />
</h:commandLink>
如何确保为每个链接生成请求,而不仅仅是为第一次尝试生成请求?
更新---
这是动作监听器
public void getDetail(ActionEvent event) {
String xyz=context.getRequestParameterMap().get("someName").toString();
//some task
}
我在此函数的第一行设置了一个断点。此函数仅被调用一次(第一次)。
第一次成功调用ajax之后,我可以在开发人员工具中看到以下错误。
customer?p_p_id=account_WAR_XXX&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_cacheability=cacheLevelPage&p_p_col_id=column-1&p_p_col_count=6&p_p_col_pos=1&_account_WAR_XXX_javax.faces.resource=primefaces.js&_account_WAR_XXX_ln=primefaces&v=4.0:5 Uncaught TypeError: Cannot read property 'source' of undefined
答案 0 :(得分:0)
替换了<f:ajax render> with <p:ajax update>
。我再也看不到开发人员工具上的JavaScript错误,并且所有功能似乎都能按预期工作。