JSF <h:outputtext ... =“”>绑定到表中的bean&gt;需要ajax支持</h:outputtext>

时间:2011-12-05 18:31:02

标签: java jsf

我有一张表,其中一列用于重计算(=等待很长时间)。

我想在页面中添加Ajax支持,以便表格显示不完整,几秒钟后Ajax会添加此特定列的数据。

我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:0)

您需要推送或类似技术。看一下icepush,题词poll。 Richfaces也提供了接近的东西。

更新:要通过一些javascript实现此目的,您可以在呈现页面后发出ajax更新。这将是:

$(function() {
  var event = document.createEvent("MouseEvents")
  event.initEvent("click", true, true)
  jsf.ajax.request(document.getElementById("my-form:my-command-link"), event, {render: "myTableId"})
})

其中my-command-link引用带有id my-form的h:commandLink内部表单。此commandLink应附加一个操作,该操作将填充缺少的数据。当然你可以用css隐藏命令链接。结果将是一个带有空表的初始页面和ajax更新,在后台获取缺少日期的处理。

我对这个例子中的事件初始化并不是100%肯定,你可能需要自己微调,但我已经成功地使用了jsf.ajax.request。

答案 1 :(得分:-1)

如果你想在h:inputText中使用ajax支持,那么这里是示例

XHTML文件中的

  <h:inputText style=" width : 70px;" id="dempID"
        value="#{InformationLoan.instance.Code}">
        <a:support event="onchange" limitToList="true" reRender="nameID"  // form ID i haved use here.
        action="#{InformationController.codeValue(InformationLoan.instance.Code)}"/>
  </h:inputText>
Bean文件中的

public void codeValue(String value){
    try{

        info("HERE IS YOUR VALUE : " + value);
        // TYPE YOUR CODE......

    }catch(Exception e){
        e.printStackTrace();
    }
}