【问题标题】:p:remoteCommand not executing / not calledp:remoteCommand 未执行/未调用
【发布时间】:2016-01-07 08:59:39
【问题描述】:

我面临以下问题:

Primefaces remoteCommand 没有执行,它是否取决于我的 portlet 的生命周期?

 <h:form id="controllayer">
 .
 .
 .
 <p:remoteCommand name="updatePageId" actionListener="#{formView.updatePageId}" />
 </h:form>
 <script>   
    var pageID;

    Liferay.on('eventFire', function(event)
     {
      console.log("Recieved");
      console.log(event.name);
      pageID = event.name;
      update();
     });

    function update() {

      console.log("Recieved PageID: " + pageID);
      updatePageId({newPageId: pageID});
    }

 </script>

我也试过不带参数,但即使这样也不行。

@SessionScoped
@ManagedBean(name="formView")
public class MainViewBean implements PagesUploadCallback, PageUploadCallback, PageActionCallback, Serializable
{
 .
 .
 .
 public void updatePageId()
 {
  LOG.info("Update Page ID");
  String pageIdString = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("newPageId");
  long pageId = Long.valueOf(pageIdString);
  LOG.debug("Setting Page: " + pageId);
  pageService.setActivePage(pageId);
 }
.
.
.
}

我的 JavaCode 永远不会被调用。

【问题讨论】:

  • “它依赖于我的 portlet 的生命周期吗?” 不知道,在普通的 servlet 容器中尝试 minimal reproducible example
  • 我认为JS方法名update应该和&lt;p:remoteCommand&gt;的值(updatePageId)匹配。您可以将 updatePageId() 创建为 JavaScript 方法,并将 actionListener 更改为 updatePageIdBean 之类的其他名称以区分两者,这可能会导致问题!
  • @Erythrozyt,我尝试了您的代码,一切正常。 RecievedRecieved pageID: 是否出现在 JS 控制台中?你有任何javascript错误吗?什么代码触发'eventFire' 事件? 注意:我通过这个p:commandButton:&lt;p:commandButton type="button" value="fire" onclick="Liferay.fire('eventFire');" /&gt;触发了这个事件
  • h:form 中是否还有其他可能无效并阻止 actionListener 的输入?是否曾经调用过 update() 脚本? JavaScript 控制台中的任何错误?另请参阅此进行其他分析:commandButton/commandLink/ajax action/listener method not invoked or input value not set/updated

标签: jsf primefaces liferay


【解决方案1】:
<p:remoteCommand name="docheck" 
         process="@form,box1,box2"
         update="box1,box2"
         action="#{testBean.myAction()}" />

这是您需要如何更改代码的示例。这将解决您的问题。如需进一步参考,请参阅以下链接:

https://forum.primefaces.org/viewtopic.php?p=61733&sid=bf526834599e119a2d8a4e0f9a6989fb#p61733

【讨论】:

    猜你喜欢
    • 2021-03-16
    • 2016-12-28
    • 2020-04-13
    • 2019-08-23
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多