【问题标题】:jsf calling bean method from javascript using p:remoteCommandjsf 使用 p:remoteCommand 从 javascript 调用 bean 方法
【发布时间】:2016-11-01 14:26:18
【问题描述】:

我无法从我的 javascript 中触发 bean 方法。

myRemote() 应该调用 xhtml 中的 primefaces remoteCommand,这应该触发 bean 中对 test1() 的调用,但这永远不会执行。为什么?

并且警报确实会显示出来,因此它正在点击 javascript 中的 addListener

我的 javascript

function loadMarkers(m) {

    for (var i = 0; i < m.length; i++) {
        PF('w_gmap').addOverlay(m[i]);

        //add listener for event clicking on marker
        google.maps.event.addListener(m[i], 'click', function () {  

            myRemote();  //should be handled by p:remoteCommand
            alert("HI 123");
        }); 
    }   
}

xhtml

<h:form styleClass="simpleformstyle" id="remoteForm">
    <p:remoteCommand name="myRemote" actionListener="#{mapBean.test1}" process="@this"/>
</h:form>   

从 p:remoteCommand 调用的 bean 方法

public void test1(){
    System.out.println("HIIIIIIIIIIII");
}

所以当我点击一个标记时,点击事件触发并且 myRemote() 应该被调用 xhtml 处理然后应该调用 bean 方法。并显示警报,因此它正在点击 javascript 中的 addListener

【问题讨论】:

  • 你看到 myRemote() 被调用了吗?
  • 你能试试 actionListener 而不是 action 吗?让我们知道
  • 嗯...你能打开开发者工具看看是否发送了 XMLHttpRequest 并查看请求/响应头/正文错误返回码...吗?

标签: javascript jsf google-maps-api-3 primefaces remotecommand


【解决方案1】:

immediate="true" 解决了我的问题,一切正常

<h:form styleClass="simpleformstyle" id="remoteForm">
    <p:remoteCommand name="myRemote" actionListener="#{mapBean.test1}" process="@this"  immediate="true"/>
</h:form>

【讨论】:

  • 你能解释一下为什么这解决了这个问题吗?我从来不需要在远程命令上使用即时。
  • 确实如此。这很可能是针对不同的不可见问题的解决方法
猜你喜欢
  • 2013-01-24
  • 2011-04-04
  • 2011-04-12
  • 2015-05-13
  • 2023-03-27
  • 2015-05-06
  • 2011-05-07
  • 2015-06-07
  • 2021-03-16
相关资源
最近更新 更多