1

我想从 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 代码?

4

1 回答 1

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>

有关类似问题,请参见此处。

于 2013-05-11T16:05:38.803 回答