0

我用 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 不起作用。所以问题是,有没有办法让它工作?我也很高兴知道一些关于此的理论。:)

4

1 回答 1

2

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

JSF 视图(由 JSF 组件组成)需要在服务器端进行处理,当它们被渲染时,它们会输出可以被浏览器处理的适当的 HTML 元素。JSF 组件不是标准的 HTML 元素,因此它们不能被浏览器识别。

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

于 2013-02-06T11:25:09.700 回答