我有一個servlet下面的代碼:當用戶在數據庫中的電子郵件地址的Java Servlet的 - 空指針異常
try
{
EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("Flights_AssignmentPU");
EntityManager em = emFactory.createEntityManager();
Query query = em.createNamedQuery("Passengers.findByPassportNum");
query.setParameter("passportNum", passport);
List<Passengers> result = query.getResultList();
em.close();
for(int i = 0; i < result.size(); i++)
{
name = result.get(i).getName();
surname = result.get(i).getSurname();
email_address = result.get(i).getEmail();
}
}
catch(Exception e)
{
response.sendRedirect("ErrorPage.html");
}
if(email_address.isEmpty() == false)
{
//Send email using email address
}
此代碼的工作就好了。但是,如果數據庫中的電子郵件字段爲空,則GlassFish服務器會給我一個空指針異常。
行應該爲這肯定這個人是:
email_address = result.get(i).getEmail();
出於某種原因,當用戶沒有電子郵件,此行給我剛纔所描述的錯誤。我怎麼解決這個問題?
編輯
創建實體類時getEmail自動生成的方法(I已經使用的持久性)。
下面是它的代碼:
public String getEmail() {
return email;
}
問題在於'Passengers.getEmail'其中還沒有包含在源。 –
向我們展示完整的堆棧跟蹤和您的實體類。 –
你意味着NPE堆棧跟蹤中的第一行指向你「絕對責怪」的特定行。但基於目前發佈的代碼邏輯,這似乎是不可能的。你能否修改你的含義和假設?順便說一下,'sendRedirect()'不會從方法中奇蹟般地返回... – BalusC