0

在我正在处理的某个程序上,在某个事件发生“work1Complete”之后,我需要更新一个特定的页面组件。

为了做到这一点,我只找到了<p:remoteCommand>标签。我像这样使用它:

<p:remoteCommand id="updater" name="updater" update="updatedList" action="#{getUpdates.getUpdates()}" actionListener="#{getUpdates.updateSearchParam}" />

然后我使用以下方法调用它存储在窗口对象中的函数:

window.updater({
    "updateString" : updateString
});

没有我搜索,我拥有的唯一信息是:

警告:JSF1064:无法找到或提供资源 /[].xhtml。

在对执行进行一些研究之后,我能够确定 getUpdates() 以某种方式被执行了 13 次,而 updateSearchParam() 被执行了 2 次。

getUpdates() 接收 void 并返回一个 Iterable。
updateSearchParam() 接收 void 并返回 void。
updatedList 永远不会更新。
使用浏览器控制台,我在它对服务器执行的 urlencoded 请求中看不到我给它的信息(上面的那个 js 对象)。

我正在使用没有其他库的 primefaces 4.0(及其所有依赖项)。

4

2 回答 2

0

更改您的 web.xml 文件,如下面的代码

web.xml

<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Production</param-value></context-param>
于 2014-10-26T13:43:12.207 回答
0

你能更清楚你的问题吗?

如果您的意思是在触发某个事件后需要执行操作,您可以在支持 bean 中设置一个布尔方法,当事件完成时设置为 true,然后根据您的布尔结果呈现组件。

例如:

public class MyBean
{
    public boolean isTrue()
      {
        if(abc.getVal()
         {
           return true;
         }
        return false;
      }
}

xhtml

<h:outputLabel styleClass="formLabel" value="abc" rendered="#{myBean.true}" />
于 2014-05-13T17:03:33.003 回答