我正在使用 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 获取值。但我认为这不会那么干净?
谢谢!
最佳答案
这是可能的。使用primefaces更容易完成。
关注this例如,您可能会在那里找到有用的东西。
关于javascript - 使用 JSF 2.0 Ajax 响应访问 bean 函数的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5586799/