处理 primefaces 日历上的日期更改

发布于 2024-10-26 12:21:56 字数 927 浏览 1 评论 0原文

我正在使用 Mojarra、PrimeFaces 2.2.1 和 Tomcat 6.x 开发 JSF 2.0 项目。

我的应用程序是国际化的。我像这样使用 primefaces 日历:

<p:calendar value="#{boxItem.agendaDate}" mode="inline" 
      showOtherMonths="true" styleClass="agendaHBox"
      selectListener="#{boxItem.handleAgendaDateChange}" 
      onSelectUpdate="@form"/>

当我的语言环境与英语不同并且我使用 selectListener 属性时,就会出现问题。

例如,当区域设置设置为西班牙语时,就会发生这种情况。 当日历出现时,它被设置为当前日期:2011 年 3 月 24 日。 当我单击其他日期(例如 2011 年 3 月 25 日)时,将调用 selectListener 方法,但我收到的日期是“Thu May 03 00:00:00 CEST 2012” 议程突然改为2012年3月5日。

selectListener 方法是:

public void handleAgendaDateChange(DateSelectEvent event)
{
   System.err.println("handleAgendaDateChange = " + event.getDate());
}

如果我删除 selectListener 属性,日历将正常运行(保持为 2011 年 3 月并选择 17 日),但在这种情况下,我在处理日期更改时遇到问题。

我需要一些代码,当用户在日历控件中选择新日期时运行,并使用 Ajax 请求将其传递到后端。如果没有 selectListener 我该如何做到这一点?

I'm working on a JSF 2.0 project using Mojarra, PrimeFaces 2.2.1 and Tomcat 6.x.

My application is internationalized. I use the calendar of primefaces like this:

<p:calendar value="#{boxItem.agendaDate}" mode="inline" 
      showOtherMonths="true" styleClass="agendaHBox"
      selectListener="#{boxItem.handleAgendaDateChange}" 
      onSelectUpdate="@form"/>

The problem occurs when my locale is different than English and I use selectListener attribute.

For example, it happens when locale is set to Spanish.
When the calendar appears, it is set to the current date: March 2011 24th.
When I click other day like 25th march 2011, the selectListener method is being called, but the date I receive is "Thu May 03 00:00:00 CEST 2012"
and the agenda suddenly changes to March 2012 5th.

The selectListener method is :

public void handleAgendaDateChange(DateSelectEvent event)
{
   System.err.println("handleAgendaDateChange = " + event.getDate());
}

If I remove selectListener attribute, the calendar behaves correctly (stays as March 2011 and selects 17th), but in this case I have issues handling date changes.

I need some code that will run when user selects a new date in the calendar control and pass it out to backend with Ajax request. How I can do that without the selectListener ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

多情出卖 2024-11-02 12:21:56

如果您在与 en 不同的语言环境中使用 p:calendar ,它似乎是有问题的(至于这个 与日历和区域设置相关的未决问题列表)。

It seems that p:calendar is buggy if you use it with a different locale than en (as to this list of open issues related to calendar and locale).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文