Getting null value for days calculated / added current date plus the user entered value
We are calculating a column value based on the user entered value ie Number of days entered by the User plus the current date.
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;
}
Desired Output
If a user enters the value of 10 then 8 May 2020 Plus 10 the Output would be 18-May-2020 in the set NewDate
Issue
the setNewdate setdaysAttendanceApprovedWithAdditionalDays is the being set to 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;
}
}
While Debugging I can find the value of
this.attendanceApprovalEntity.getdaysAttendanceApproved
ie user entered value something like 10 , but I could not proceed afterthat