gpt4 book ai didi

java - 无法触发p :calendar's selectListener

转载 作者:行者123 更新时间:2023-12-02 08:16:05 35 4
gpt4 key购买 nike

我的代码如下:

<p:calendar showOn="button"
value="#{searchMB.filledFromDate}"
pattern="MM/dd/yyyy" maxlength="10" id="filledFromDate"
converter="submittedDateConverter"
converterMessage="#{message.filled_date_from_is_not_a_valid_date}"
styleClass="calendar" selectListener="#{searchMB.test}"
onchange="alert('')"
onSelectUpdate="filledToDate_panel">
<f:ajax event="blur" execute="filledFromDate"
render="filledToDate_panel"></f:ajax>
</p:calendar>


public void test(DateSelectEvent event) {
System.out.println("-------------->" + event);
}
  • 我想实现这个功能:当我选择 Calendar 的下拉列表时,我想立即调用 test 方法,将选择的日期放入另一个 Calendar input 。

    如果我不添加转换器。该方法将被触发。但是添加 converter 后,无法触发 selectListener="#{searchMB.test}" 方法。我不知道为什么。有人可以帮助我吗?

最佳答案

您不应该使用 <f:ajax> Primefaces 组件中的标签。

对于许多 Primefaces 组件,您可以使用 <p:ajax>但是标记为 <p:calendar>您可以使用各种不同的属性来提供 Ajax 功能。

来自 Primefaces 指南 2.2

OnSelectProcess - 选择日期时使用 ajax 处理的组件(默认值: @this )。

以及指南中的 Ajax 选择监听器:

Ajax Selection Calendar supports instant ajax selection which means whenever a date is selected a server side selectListener can be invoked with an org.primefaces.event.DateSelectEvent instance as a parameter. Optional onSelectUpdate option allows updating other component(s) on page.

<p:calendar value="#{calendarBean.date}" onSelectUpdate="messages"
selectListener="#{calendarBean.handleDateSelect}" />
<p:messages id="messages" />

隐藏代码

public void handleDateSelect(DateSelectEvent event) {
Date date = event.getDate();
//Add facesmessage
}

我很好奇你需要转换器做什么? value属性可以是 java.util.Date 的托管 bean 属性类型,无需显式转换器。

关于java - 无法触发p :calendar's selectListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6400258/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com