用jquery添加的jsf comandLink .append()不起作用

时间:2013-02-06 11:15:00

标签: jquery jsf

我添加了一些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不起作用。 所以问题是,有没有办法让它发挥作用?我也很欣赏这方面的一些理论。 :)

1 个答案:

答案 0 :(得分:2)

commandLink不起作用,因为您使用JavaScript(由客户端(浏览器)运行)添加它。

JSF视图(由JSF组件构成)需要在服务器端进行处理,在呈现它们时,它们会输出可由浏览器处理的正确HTML元素。 JSF组件不是标准HTML元素,因此浏览器无法识别它们。

很难猜到你想要实现什么,但是,如果你想动态添加一些JSF组件,那么你需要针对服务器触发AJAX请求并重新渲染视图中那些组件所需的部分插入(当然是HTML)。