我用jquery .append()
添加了一些代码
$('#div').append('<div id="windiv">'+
'<h:commandLink id="cmdbtn">'+
'<div id="reducebtndiv" class="btn"></div>'+
'<f:ajax event="click" execute="@form"'+
'listener="#{screenShotBean.takeScreenshot}" ></f:ajax>'+
'</h:commandLink>');
但是commandLink不起作用。所以问题是,有没有办法让它发挥作用?我也很高兴知道一些关于这方面的理论。:)
commandLink
不起作用,因为您正在使用客户端(浏览器)运行的JavaScript添加它。
JSF视图(由JSF组件组成)需要在服务器端进行处理,当它们被呈现时,它们会输出可以由浏览器处理的适当HTML元素。JSF组件不是标准的HTML元素,因此浏览器无法识别它们。
很难猜测您想要实现什么,但是,如果您想要动态添加一些JSF组件,那么您需要针对服务器触发AJAX请求,并重新呈现视图中需要插入这些组件的部分(当然是HTML)。