无用户输入NullPointerException

问题描述 投票:0回答:1

这是我的代码holidayApproveRejectMB.java

private Date setDaysHolidaysApprovedWithAdditionalDays(int daysHolidaysApproved2) {

    Date currentDate = new Date();
    Calendar c = Calendar.getInstance();
    c.setTime(currentDate);
    // manipulate date
    c.add(Calendar.DATE, daysHolidaysApproved2); //same with c.add(Calendar.DAY_OF_MONTH, 1);
    // convert calendar to date
    Date currentDatePlusUserInput = c.getTime();
   return currentDatePlusUserInput;
}


public void approvalHolidayForm(AjaxBehaviorEvent event) {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    try {

        this.holidaysApprovalEntity.setPage(PageEntity);
        if(this.getPageEntity().getPageType().getTypeId() == 3)
        {
        this.holidaysApprovalEntity.setdate(setDaysHolidaysApprovedWithAdditionalDays(this.holidaysApprovalEntity.getDaysHolidaysApproved()));
        }   

        this.pageServiceUtil.getPageReviewApprovalService().save(holidaysApprovalEntity);   
        }
        }

用户点击

 --page1--          --page2--           --page3--

这些字段显示在前端页面上

 name               name                name
 daysTotal          daysTotal           daysTotal
 overtimeTotal      medicalTime         daysHolidaysApproved

Page.xhtml

 <p:inputText id="Name" value="#{holidayApproveRejectMB.ApprovalEntity.name}"   
 <p:inputText id="daysTotal" value="#{holidayApproveRejectMB.ApprovalEntity.daysTotal}" 

 If PageType =1  Display
 <p:inputText id="overtimeTotal" value="#{holidayApproveRejectMB.ApprovalEntity.overtimeTotal}" 
 If PageType =2  Display
 <p:inputText id="medicalTime" value="#{holidayApproveRejectMB.ApprovalEntity.medicalTime}"
 If PageType =3  Display
 <p:inputText id="daysHolidaysApproved" value="#{holidayApproveRejectMB.ApprovalEntity.daysHolidaysApproved}"               

如果用户在输入文本字段中输入值,则该值将存储在数据库中问题是,当用户不输入任何内容并单击“提交”时,它返回一个空值。

接收空值/错误@行

 this.holidaysApprovalEntity.setdatethis.holidaysApprovalEntity.setdate(setDaysHolidaysApprovedWithAdditionalDays(this.holidaysApprovalEntity.getDaysHolidaysApproved()));

其余功能

  • 用户在第1页上不输入任何内容,并且可以正常工作。
  • 用户在第1页上输入内容并提交工作罚款。
  • 当用户单击第3页并输入daysHolidaysApproved的值时,我们将使用此值并为数据库中的新列设置日期字段(setdate)。

  • 问题是当用户单击第3页并且不输入任何内容时发生此错误。

java jsf nullpointerexception
1个回答
0
投票

问题是当用户单击第3页并且不输入任何内容时发生此错误。

if(this.getPageEntity().getPageType().getTypeId() == 3) {
        this.holidaysApprovalEntity.setdate(setDaysHolidaysApprovedWithAdditionalDays(this.holidaysApprovalEntity.getDaysHolidaysApproved()));
}   

您仅检查页面ID。您应该对输入或操作使用的任何数据进行验证检查。我相信这是您NullPointerException

的原因
© www.soinside.com 2019 - 2024. All rights reserved.