Ajax JSF-如何从代码运行javascript表达式

Ajax JSF-如何从代码运行javascript表达式,ajax,jsf,Ajax,Jsf,试图通过编程来实现这一点 <a4j:commandLink ... onclick="#{rich:component('modalPanelID')}.show()"/> 你知道为什么以及如何让它工作吗 Thanx.因为表达式从未计算过 在第一种方法中,当呈现页面时,{rich:component…}由Richfaces进行计算,类似下面的代码在页面上呈现: document.getElementById('formID:modalPanelID').component.show

试图通过编程来实现这一点

<a4j:commandLink ... onclick="#{rich:component('modalPanelID')}.show()"/>
你知道为什么以及如何让它工作吗


Thanx.

因为表达式从未计算过

在第一种方法中,当呈现页面时,
{rich:component…}
由Richfaces进行计算,类似下面的代码在页面上呈现:

document.getElementById('formID:modalPanelID').component.show();
由于您是以编程方式进行此操作,因此您将绕过此渲染。我建议您只使用上面呈现的javascript

commandLinkObject.setOnClick("document.getElementById('formID:modalPanelID').component.show()");

它怎么不起作用?生成了什么HTML?日志中有什么内容吗?谢谢你让我开始关注评估(因此是+1),但它仍然不起作用。(我是否需要使用formID:?我尝试了使用和不使用,但仍然没有成功。使用JSF,一切都归结为以HTML(等)形式呈现的内容。因此,如果您检查Firebug呈现的内容,您将很容易发现问题。在这种情况下,将检查创建的ID是否存在。
commandLinkObject.setOnClick("document.getElementById('formID:modalPanelID').component.show()");