【发布时间】:2020-12-01 07:04:02
【问题描述】:
在我的代码中,我的 bean 中存储了两个日期值,其中一个(recallDate)由用户从日历组件中选择。对于另一个(recallFinishDate),我正在尝试计算所选召回日期后两周的完成日期。
当用户选择召回日期时,我想通过重新呈现更新的完成日期来显示它。
问题是,当我从日历中选择一个值时,我可以看到我的 calculateRecallFinish 方法运行 正确 并进行了正确的计算,但在我的方法完成后,它默认情况下,在recallDate 和recallFinishDate 上继续设置今天的日期值。
我想在前端查看选择和计算的召回日期。
我目前使用的是 primefaces 6.0 版
这是我的代码
@Named("updatePlanning")
@ViewScoped
public class UpdatePlanningView extends BaseView implements Serializable {
private static final long serialVersionUID = -7354105373870032645L;
private Date recallDate = new Date();
private Date recallFinishDate = new Date();
/**
Initialize methods and getter setters are here
**/
public void calculateRecallFinish(SelectEvent e) {
recallDate = (Date) e.getObject();
Calendar calendar = Calendar.getInstance();
calendar.setTime(recallDate);
calendar.add(Calendar.DAY_OF_YEAR, (14));
recallFinishDate = calendar.getTime();
}
}
而我的前端xhtml代码是这样的;
<p:calendar id="recallDate" value="#{updatePlanning.recallDate}" showOn="button" navigator="true" styleClass="form-calendar">
<p:ajax event="dateSelect"
listener="#{updatePlanning.calculateRecallFinish}" global=true update="@form"> </p:ajax>
</p:calendar>
<p:inputText disabled="true" id="recallFinishDate" value="#{updatePlanning.recallFinishDate}">
</p:inputText>
【问题讨论】:
标签: jsf primefaces calendar