BootsFaces DateTimePicker AJAX不起作用

时间:2019-05-25 10:14:42

标签: ajax bootsfaces

在BootStrap中,通过AJAX调用后端bean不适用于DateTimePicker组件。

如果我的代码有误,请问有人可以帮忙吗?

令我惊讶的是,BootStrap的DateTimePicker参考页也不适用于AJAX。在参考页面(https://showcase.bootsfaces.net/forms/DateTimePicker.jsf

参考代码

<b:form>
  <b:dateTimePicker value="#{test.dataToPick}" ondtchange="ajax:test.updateTestField()" process="@this" update="@next" label="Select date:" iconAwesome="bolt" />
  <b:inputText value="#{test.testField}" label="Result: " readonly="true" />
</b:form>

也不起作用。

这是我的代码不起作用:

<b:form>
<b:dateTimePicker value="#{listBean.editMonth}"
    readonly="false"
    allow-input-toggle="false"
    icon-position="right"
    mode="popup"
    format="MMM YYYY"
    side-by-side="false"
    show-date="true"
    show-time="false"
    show-icon="true"
    required="true"
    viewMode="months"
    locale="en"
    iconSize="xs"
    styleClass="datePicker"
    id="monthpicker"
    process="@this"
    ondtchange="ajax:listTradesBean.updateMonth()"
    onblur="ajax:listTradesBean.updateMonth()"/>
</b:form>

通常,我希望会调用后端代码“ updateMonth()”。后端bean的Java代码片段就是:

public void updateMonth() {
    System.out.println("WORKING!");     
}

使用AJAX可以毫无问题地调用此后端bean中的其他方法。

1 个答案:

答案 0 :(得分:0)

是的,在Bootsfaces展示页面中的示例不起作用。

奇怪的是,我设法建立了一个工作示例,通过使用传统的JSF AJAX(旧式)语法解决了您的问题:

<b:dateTimePicker id="datePicker"
    format="DD/MM/YYYY HH:mm"
    value="#{testBB.selectedDate}"
    required="true"
    renderLabel="false"
    ajax="true"
    process="@this"
    update="@this"
    ondtchange="#{testBB.doSomething()}">
</b:dateTimePicker>

据我所知,这将与“ ajax:testBB.doSomething()”相同。