Получение нулевого значения для дней, рассчитанных / добавленных текущей даты плюс введенное пользователем значение
Мы вычисляем значение столбца на основе введенного пользователем значения ie Количество дней, введенных пользователем, плюс текущая дата .
private Date setdaysAttendanceApprovedWithAdditionalDays(int daysAttendanceApproved2) {
Date currentDate = new Date();
Calendar c = Calendar.getInstance();
c.setTime(currentDate);
c.add(Calendar.DATE, daysAttendanceApproved2);
Date currentDatePlusUserInput = c.getTime();
return currentDatePlusUserInput;
}
Желаемый результат
Если пользователь вводит значение 10, то 8 May 2020 Plus 10, в наборе NewDate
* 1009 будет выведено 18-May-2020 * Проблема
для setNewdate setdaysAttendanceApprovedWithAdditionalDays устанавливается значение null
<h:form>
<p:panel id="panel" header="New User">
<h:panelGrid columns="3" cellpadding="5">
<p:outputLabel for="Additional Days" value="Additionaldays:" />
<p:inputText id="additionaldays" value="#{saveMB.attendanceApprovalEntity.daysAttendanceApproved}">
</p:inputText>
</h:panelGrid>
<p:commandButton value="Save" actionListener="#{saveMB.approveAttendance}" />
</p:panel>
</h:form>
saveMB. java
@ManagedBean(name = "saveMB")
@ViewScoped
public class saveMB implements Serializable {
private static final long serialVersionUID = 1L;
private static final Logger logger = LoggerFactory.getLogger(saveMB.class);
private Integer daysAttendanceApproved;
public Integer getdaysAttendanceApproved() {
return daysAttendanceApproved;
}
public void setdaysAttendanceApproved(Integer daysAttendanceApproved) {
this.daysAttendanceApproved = daysAttendanceApproved;
}
private Date newdate;
public Date getNewdate() {
return newdate;
}
public void setNewdate(Date newdate) {
this.newdate = newdate;
}
private AttendanceFlow attendanceApprovalEntity;
public AttendanceFlow getattendanceApprovalEntity() {
return attendanceApprovalEntity;
}
public void setattendanceApprovalEntity(AttendanceFlow attendanceApprovalEntity) {
this.attendanceApprovalEntity = attendanceApprovalEntity;
}
@PostConstruct
public void init() {
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
Map<String, String> params = externalContext.getRequestParameterMap();
}
private Date setdaysAttendanceApprovedWithAdditionalDays(int daysAttendanceApproved2) {
Date currentDate = new Date();
Calendar c = Calendar.getInstance();
c.setTime(currentDate);
c.add(Calendar.DATE, daysAttendanceApproved2);
Date currentDatePlusUserInput = c.getTime();
return currentDatePlusUserInput;
}
public void approveAttendance(AjaxBehaviorEvent event) {
FacesContext facesContext = FacesContext.getCurrentInstance();
try {
this.attendanceApprovalEntity.setNewdate(setdaysAttendanceApprovedWithAdditionalDays(this.attendanceApprovalEntity.getdaysAttendanceApproved()));
} catch (Exception e) {}
}
}
AttendanceFlow. java
@Entity
@Table(name = "ATTENDANCE_FLOW")
@NamedQuery(name = "AttendanceFlow.findAll", query = "SELECT h FROM AttendanceFlow h")
public class AttendanceFlow implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "ATTENDANCE_FLOW_ID_GENERATOR", sequenceName = "ATTENDANCE_FLOW_ID_SEQ", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ATTENDANCE_FLOW_ID_GENERATOR")
@Column(name = "ATTENDANCE_FLOW_ID")
private Integer AttendanceFlowId;
@Column(name = "DAYS_ATTENDANCE_APPROVED")
private Integer daysAttendanceApproved;
@Column(name = "NEW_DATE")
@Temporal(TemporalType.DATE)
private Date newdate;
public Date getNewdate() {
return newdate;
}
public void setNewdate(Date newdate) {
this.newdate = newdate;
}
public Integer getAttendanceFlowId() {
return AttendanceFlowId;
}
public void setAttendanceFlowId(Integer AttendanceFlowId) {
this.AttendanceFlowId = AttendanceFlowId;
}
public Integer getdaysAttendanceApproved() {
return daysAttendanceApproved;
}
public void setdaysAttendanceApproved(Integer daysAttendanceApproved) {
this.daysAttendanceApproved = daysAttendanceApproved;
}
}
Во время отладки я могу найти значение
this.attendanceApprovalEntity.getdaysAttendanceApproved
ie введенное пользователем значение примерно 10, но я не смог продолжить после этого