Я создаю приложение для планирования, используя 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;
}
Я пытался получить это из объекта ответа в JavaScript в функции processSave()
.
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.
}
}
Возможно ли то, что я пытаюсь использовать с использованием современных технологий?
Я думаю, что можно было бы обновить поле на странице с помощью компонента render
вызова AJAX, а затем использовать Javascript, чтобы получить getЗначение.Но я думаю, что это будет не так чисто?
Спасибо!