jquery - richfaces使用ajax向服务器发送数据

标签 jquery ajax jsf jsf-2 richfaces

我的应用程序允许用户在消息字段中键入文本,当他键入时,它必须允许管理员查看在不同控制台中键入的内容。

为此 我需要定期将数据发送到托管 bean,并从那里发送到业务层。

      <h:form>
          Name : <h:inputText id="name" value="#{clockBean.name}"/>
          Message: <h:inputText id="age" value="#{clockBean.msg}"/>
          <a4j:poll id="poll" interval="20000" enabled="#{clockBean.enabled}" action="#
           {clockBean.process}" render="clock,counter"/>
          <a4j:log/>        
      </h:form>

我有 name 和 msg 的 ManagedBean 属性,我需要访问 name 和 msg 属性,并在处理它们时将它们发送到业务层 ClockBean 托管 Bean 的 process() 方法。

@ManagedBean 
@ViewScoped 

public class ClockBean implements Serializable{ 

private string msg; 
private string name; 
private boolean enabled; 

public void process(){ 

System.out.println("timer event calling *** - msg is "+msg+" : name is "+name); } 

//getters setters & rest of the code

目前,我的 bean 范围为 ViewScoped,并且当轮询每 20 秒运行一次时,我得到 2 个字段的空值。 当轮询在给定时间间隔内运行时,如何获取 name 和 msg 属性值? 有没有更好的方法来解决这个问题?

最佳答案

session 范围仅对当前用户可见。因此,如果您尝试在管理页面中获取#{cl​​ockBean},您实际上最终会得到一个全新的 bean。为了使管理员用户也可以使用此信息,您需要保留此信息并阅读它。

更新: 我不会用轮询来做到这一点,因为即使数据没有改变,轮询每次都会执行请求。我会用 onchange 事件、队列和请求延迟来做到这一点。如果 a4j:poll 没有提交表单(也许是 richfaces 中的错误?),您可以使用 a4j:function 轻松实现这一点,只需创建一个 js 函数并调用它使用 js 中的 setInterval()

关于jquery - richfaces使用ajax向服务器发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6385158/

相关文章:

javascript - 隐藏的嵌套导航在悬停之前显示

php - 使用 AJAX 从表单发送图像

javascript - 跨站点 xmlhttp 请求返回状态 0

jsf - 如何使用PrimeFaces p:fileUpload?永远不会调用监听器方法,或者UploadedFile为null/引发错误/不可用

javascript - jquery中长轮询的有效方法

javascript - 表单在提交时没有向上移动

javascript - 如何将变量从 Controller 传递到 application.js?

jsf - Tomcat 8 在启动时创建一个新 session

jsf - 是否可以拦截来自@ManagedBean 的方法?如果没有,有替代方案吗?

javascript - 我的 HTML 文件不会链接到我的 Javascript 文件