0

我在网上搜索并尝试了很多东西,但没有任何结果......在我的 .xhtml 页面中有 7 个链接,它们是 JSf 命令链接,如下所示,

    <h:commandLink id="HeaderLink" value="Header">
        <f:ajax render="orderHeaderVOString" 
            onevent="updateHeaderVO"
            listener="#{OrderMBean.getOrderHeaderData}" />
    </h:commandLink>
    &nbsp;&nbsp;
    <h:commandLink id="orderLinesLink" value="Lines">
        <f:ajax render="orderLinesVOString" 
            onevent="updateLinesVO"
            listener="#{OrderMBean.getOrderLinesData}" />
    </h:commandLink> 

输入隐藏字段如下

    <h:inputHidden value="#{directCustViewOrderMBean.headerVOString}"
        id="orderHeaderVOString" />
    <h:inputHidden value="#{directCustViewOrderMBean.linesVOString}"
        id="orderLinesVOString" />

和javascript方法如下

    function updateHeaderVO(data) {
          if (data.status == 'success') {
        var orderHeaderVOString =    document.getElementById('viewOrderForm:orderHeaderVOString').value;
            var parsedJSON = eval("(" + orderHeaderVOString + ")");
             alert("success");
             }}

我的问题是当我在更改 4 到 5 页后继续浏览页面时,我收到错误“语法错误:输入意外结束”。这是因为没有调用侦听器方法,并且 'viewOrderForm:orderHeaderVOString' 中的数据将为空。为什么有时它被调用,有时它不被调用?

4

1 回答 1

0

我得到了解决方案,它现在工作正常,问题在于

<h:inputHidden feilds

每次我浏览页面时,值都会保留在隐藏的字段中,因此不会发生 ajax 调用。现在我每次都取消隐藏的字段。所以它工作正常,ajax调用正在发生。

于 2013-05-07T14:41:56.040 回答