Jsf 如何在托管bean中获取primefaces日历的值?

Jsf 如何在托管bean中获取primefaces日历的值?,jsf,primefaces,Jsf,Primefaces,我在我的jsf页面中有一个日历,我想在它更改时获得它的值我尝试添加listener但不起作用我找到了其他解决方案但没有使用primefaces 3.5: <p:calendar id="popupButtonCal22" value="#{zp01ManagedBean.datedeplanification}" showOn="button" locale="fr" > <p:ajax listener="#{zp01ManagedBean.setDatedeplan

我在我的jsf页面中有一个日历,我想在它更改时获得它的值我尝试添加listener但不起作用我找到了其他解决方案但没有使用primefaces 3.5:

   <p:calendar id="popupButtonCal22" value="#{zp01ManagedBean.datedeplanification}" showOn="button" locale="fr"  >
<p:ajax listener="#{zp01ManagedBean.setDatedeplanification(zp01ManagedBean.datedeplanification)}"/>   
                </p:calendar>

你知道如何解决这个问题吗


我使用的是primefaces 3.5,没有必要由ajax侦听器手动设置值,因为提交字段值时会隐式调用setter。您所要做的就是在更改时提交值。所以试试这个:

<p:calendar id="popupButtonCal22" value="#{zp01ManagedBean.datedeplanification}" showOn="button" locale="fr"  >
    <p:ajax process="popupButtonCal22" partialSubmit="true" event="change"/>   
</p:calendar>

如果您还想在值更改后调用操作,可以将
listener=“#{someBean.someAction”
添加到
p:ajax
-标记中


如果您想对旧值和新值进行一些检查,请使用
p:calendar
-标记的
valueChangeListener
-属性。

无需由ajax侦听器手动设置值,因为提交字段值时会隐式调用setter。您只需提交va即可在变化中使用lue。因此,请尝试以下方法:

<p:calendar id="popupButtonCal22" value="#{zp01ManagedBean.datedeplanification}" showOn="button" locale="fr"  >
    <p:ajax process="popupButtonCal22" partialSubmit="true" event="change"/>   
</p:calendar>

如果您还想在值更改后调用操作,可以将
listener=“#{someBean.someAction”
添加到
p:ajax
-标记中


如果您想对新旧值进行一些检查,请使用
p:calendar
-标记的
valueChangeListener
-属性。

尝试将
p:calendar
组件放在
h:form
标记中。我不明白为什么您的代码实际上不起作用,您甚至不需要ajax…

尝试放在标签中他将
p:calendar
组件放在
h:form
标记中。我不明白为什么您的代码实际上不能工作,您甚至不需要ajax…

试试这个,可能这会有帮助:

<h:body>
    <h:form>
        <p:calendar id="dateObj" value="#{test.date1}" showOn="button" pattern="dd-MMMM-yyyy">
            <p:ajax event="dateSelect" listener="#{test.handleDateSelect}"/>
        </p:calendar>
    </h:form>
</h:body>

试试这个,可能会有帮助:

<h:body>
    <h:form>
        <p:calendar id="dateObj" value="#{test.date1}" showOn="button" pattern="dd-MMMM-yyyy">
            <p:ajax event="dateSelect" listener="#{test.handleDateSelect}"/>
        </p:calendar>
    </h:form>
</h:body>
  • 与inputText一起使用

  • 在选择日期时与日历一起使用

  • 在输入日期时与日历一起使用

      • 与inputText一起使用

      • 在选择日期时与日历一起使用

      • 在输入日期时与日历一起使用

      
      
      这对我很有用。

      
      

      这对我来说很有效。

      我仍然有相同的问题,我从托管bean中的“DateDeplanization”得到null。我只想得到选择的日期值,但仍然有null值。我仍然有相同的问题,我从“DateDeplanization”得到null在托管bean中。我只需要选择日期值,但仍然有空值。当您使用
      选择日期时,它始终是一个dateSelect事件,并且支持bean中的处理程序在您选择日期后立即获取日期。请尝试此操作。如果这是您想要的。DateSelectEvent在primefaces 3.5中不存在:(根据此,请改用SelectEvent。当您使用
      选择日期时,它始终是一个dateSelect事件,并且支持Bean中的处理程序会在您选择日期后立即获取日期。请尝试此操作..如果这是您想要的。DateSelectEvent在primefaces 3.5中不存在:(根据本文,请改用SelectEvent。发布bean的代码,我怀疑它有问题。发布bean的代码,我怀疑它有问题。
      <p:ajax event="dateSelect"/>
      <p:ajax event="change"/>
      <p:calendar ...>
          <p:ajax event="dateSelect" ... />
          <p:ajax event="change" ... />
      </p:calendar>