使用JSF 2.0 Ajax响应从bean函数访问返回值?

时间:2011-04-07 19:53:46

标签: javascript ajax jsf-2

我正在使用JSF 2.0构建一个调度应用程序,用户可以在其中添加项目到日历,然后编辑这些对象。

我正在广泛使用AJAX来防止页面刷新。

我遇到的问题是从使用AJAX调用的函数中获取返回值。

<!-- ... form to fill -->
<h:commandButton value="Insert">
   <f:ajax execute="formField1 formField2..." 
    listener="#{myBean.insert()}" onevent="processSave"/>
</h:commandButton>

这成功调用了我的JavaScript函数processSave()

myBean.insert()返回数据库中新插入行的id

public String insert() {
    //... inserting data into database
    id = {id from database is obtained here}
    System.out.println("I have the ID here : " id);  //this works
    return id;
}

我一直试图通过processSave()函数中的JavaScript中的响应对象来获取它。

processSave(data) {
    if(data.status == "begin") {
        // ation done here
    } else if(data.status == "complete") {
        // more actions done here
    } else if(data.status == "success") {
        //I am trying to get the ID here
        //I've tried looking into data.responseXML, but to no avail.
    }
}

我正在尝试使用当前的技术吗?

我认为可以使用AJAX调用的render组件更新页面中的字段,然后使用Javascript获取值。但我觉得这不会那么干净吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

有可能。使用primefaces更容易完成。

按照this示例,您可能会在那里找到有用的东西。