我正在使用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获取值。但我觉得这不会那么干净吗?
谢谢!