在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中的其他方法。
答案 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()”相同。