Primefaces 日历监听器不影响变量数据
Primefaces Calendar Listener not affecting data to variable
我有两个 Datepicker
/Calendar
(Primefaces) ,我想做的是当我点击第二个日历时,我会调用一个监听器来计算两者之间的天数这两个日期。这就是我所做的:
网页
<a:column span="4" >
<a:label value="Begining Date" span="4" required="true" ></a:label>
<a:column span="8">
<p:calendar id="idBegDate" value="#{addController.enti.begDate}"
pattern="dd/MM/yyyy" label="Begining Date"
readonlyInput="true" locale="fr" navigator="true"
required="true" >
</p:calendar>
</a:column>
</a:column>
<a:column span="4" >
<a:label value="End Date" span="4" required="true" ></a:label>
<a:column span="8">
<p:calendar id="idDateFin" value="#{addController.enti.dateFinAbsAgt}"
pattern="dd/MM/yyyy" label="End Date"
readonlyInput="true" locale="fr" navigator="true"
required="true" >
<p:ajax event="dateSelect" listener="#{addController.doCalculate()}" update="jourCalendaire" />
</p:calendar>
</a:column>
</a:column>
支持 Bean
public void doCalculate()
{
//..Some Stuffs
}
问题是当调用监听器时它说 dateOfBegining
是 NULL
而它不应该是。
我通过在 first calendar
:
中添加一个空的 listener
找到了这个问题的解决方案
public void emptyListener()
{
}
我认为这不合逻辑,所以我想知道 webpage/backingBean 为什么会有这种行为?有没有办法只使用第二个日历的监听器?
谢谢
在第二个日历的 p:ajax
上,您需要添加 process="@this idBegDate"
以便 JSF 知道获取 @this
(第二个日历)和 idBegDate
的值(第一个日历)并将其放入您的模型对象中。
除非您进行处理,否则视图中的任何内容都不会返回到服务器。将 p:ajax
添加到第一个日历会为您处理。
我有两个 Datepicker
/Calendar
(Primefaces) ,我想做的是当我点击第二个日历时,我会调用一个监听器来计算两者之间的天数这两个日期。这就是我所做的:
网页
<a:column span="4" >
<a:label value="Begining Date" span="4" required="true" ></a:label>
<a:column span="8">
<p:calendar id="idBegDate" value="#{addController.enti.begDate}"
pattern="dd/MM/yyyy" label="Begining Date"
readonlyInput="true" locale="fr" navigator="true"
required="true" >
</p:calendar>
</a:column>
</a:column>
<a:column span="4" >
<a:label value="End Date" span="4" required="true" ></a:label>
<a:column span="8">
<p:calendar id="idDateFin" value="#{addController.enti.dateFinAbsAgt}"
pattern="dd/MM/yyyy" label="End Date"
readonlyInput="true" locale="fr" navigator="true"
required="true" >
<p:ajax event="dateSelect" listener="#{addController.doCalculate()}" update="jourCalendaire" />
</p:calendar>
</a:column>
</a:column>
支持 Bean
public void doCalculate()
{
//..Some Stuffs
}
问题是当调用监听器时它说 dateOfBegining
是 NULL
而它不应该是。
我通过在 first calendar
:
listener
找到了这个问题的解决方案
public void emptyListener()
{
}
我认为这不合逻辑,所以我想知道 webpage/backingBean 为什么会有这种行为?有没有办法只使用第二个日历的监听器?
谢谢
在第二个日历的 p:ajax
上,您需要添加 process="@this idBegDate"
以便 JSF 知道获取 @this
(第二个日历)和 idBegDate
的值(第一个日历)并将其放入您的模型对象中。
除非您进行处理,否则视图中的任何内容都不会返回到服务器。将 p:ajax
添加到第一个日历会为您处理。