Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JSF中从JavaScript调用服务器端代码_Javascript_Ajax_Jsf - Fatal编程技术网

在JSF中从JavaScript调用服务器端代码

在JSF中从JavaScript调用服务器端代码,javascript,ajax,jsf,Javascript,Ajax,Jsf,我正在寻找一种简单的方法来调用bean的方法,该方法不带任何参数,并在JSF中返回字符串。我真正不需要的是,该方法返回一个操作结果,然后使用整个JSF生命周期将我转到另一个视图。我需要通过JavaScript来实现这一点,这样我就可以组合应用程序的一些客户端部分,而查看RichFaces的A4J部分到目前为止还没有给我带来什么 下面是一个循序渐进的场景: 从JS问题中获取某个地址 在获取并返回JSON或HTML(基本上是字符串)的服务器进程上 一旦请求被发送回客户端,我希望能够使用JS进一步处理

我正在寻找一种简单的方法来调用bean的方法,该方法不带任何参数,并在JSF中返回字符串。我真正不需要的是,该方法返回一个操作结果,然后使用整个JSF生命周期将我转到另一个视图。我需要通过JavaScript来实现这一点,这样我就可以组合应用程序的一些客户端部分,而查看RichFaces的A4J部分到目前为止还没有给我带来什么

下面是一个循序渐进的场景:

  • 从JS问题中获取某个地址
  • 在获取并返回JSON或HTML(基本上是字符串)的服务器进程上
  • 一旦请求被发送回客户端,我希望能够使用JS进一步处理它
  • 谢谢

    使用a4j:jsFunction和数据属性

    所以大致上你想要的是:

    <button onclick="callBackend();">Go</button>
    
    <a4j:jsFunction name="callBackend" action="#{myBean.someMethod}" data="#{myBean.someString}" oncomplete="handleResponse(data);"/>
    
    <script>
    function handleResponse(response) {
       alert(response);
    }
    </script>
    
    Go
    功能句柄响应(响应){
    警报(响应);
    }
    
    达莫:你能解释一下为什么它可能只在第一次执行callBackend方法时才起作用吗?我遇到了一个奇怪的行为,第一个呼叫成功,而下一个呼叫被阻止。我看到服务器端代码正在执行,但一些奇怪的结果正在被发送回浏览器(类似于_viewstate之类的东西)。

    大致上是的,但我希望结果由someMethod返回,而不是由myBean.getSomeString()返回。我没有尝试过,但您可以放弃该操作并将someMethod()放入在数据里?是我做的。只是数据方法必须像getter(String getSomeMethod())一样定义。除此之外,它还能工作。谢谢不确定。我以前在重新命名脚本所在的区域时也经历过这种行为。因此,请确保您没有重新启动按钮或JSF函数。