我想从a4j:jsFunction获取返回值。但我不知道如何完成这件事。
这是JSF代码:
<h:form>
<a4j:jsFunction name="createEvent" data="#{calendarController.eventId}" action="#{calendarController.createEvent()}">
<a4j:param name="eventTitle"
assignTo="#{calendarController.eventTitle}" />
</a4j:jsFunction>
</h:form>
我将a4j:jsFunction称为:
var id = createEvent(event.title);
Beans方法calendarController.createEvent()返回一个整数值。属性eventId将此值保存到。如何将此值传回页面上的javascript代码?
答案 0 :(得分:3)
由于ajax调用是异步的,因此无法直接从'createEvent'方法获取值。但是,如果您使用'oncomplete'属性,则可以获得它,例如:
<h:form>
<a4j:jsFunction name="createEvent" data="#{calendarController.eventId}" action="#{calendarController.createEvent()}" oncomplete="alert(data)">
<a4j:param name="eventTitle"
assignTo="#{calendarController.eventTitle}" />
</a4j:jsFunction>
</h:form>
有关类似问题,请参阅here。