使用Facelets的Trinidad PPR(部分页面渲染)问题

时间:2013-07-05 10:48:55

标签: facelets trinidad

我遇到http://wiki.apache.org/myfaces/Facelets_with_Trinidad所述的问题。更具体地说:

“执行PPR时组件的id生成存在问题。症状是单击命令不会执行所需的操作,只会重新加载整个页面。任何后续点击任何命令都会成功。

要解决此问题,请至少为受影响网页上的所有命令设置ID。“。

我已经尝试过上述方法,但问题仍然存在。有没有人对此有任何解决方案?

1 个答案:

答案 0 :(得分:0)

最后,我通过在加载页面上调用下面的函数解决了上述问题。

// Override function to solve ppr problems
function overrideFunc() {
    TrPage.prototype._updateViewState = function(a59, a60, a61) {
    var a62 = null;
    if (a61)
        a62 = a59.getElementById(a61);

    for ( var i = 0; i < a59.forms.length; i++) {
        a62 = a59.forms[i];
        if (!a62)
            return;

        var a63 = a62.elements[TrPage._VIEW_STATE_ID];
        if (!a63) {
            a63 = a59.createElement("input");
            a63.type = 'hidden';

            if(_agent.isIE && _agent.version < 8) {
                a63.id = TrPage._VIEW_STATE_ID;
            }

            a63.name = TrPage._VIEW_STATE_ID;
            a62.appendChild(a63);
        }

        a63.value = TrPage._getTextContent(a60); 
    }
};

}