2017-04-16 30 views
0

我試圖從JSP傳遞給servlet的變量是masession.idemp,它已從會話範圍中恢復。Tomcat錯誤,無法讀取會話範圍變量

它傳遞給servlet 「/ creerticket」 通過:

<input type="hidden" name="idemp" value="${masession.idemp}"> 

這是 「優先級」 的屬性傳遞到servlet:

<span class="info">Priorité:</span><br> 
<input type="radio" name="priorite" value="1">Faible<br> 
<input type="radio" name="priorite" value="2">Moyenne<br> 
<input type="radio" name="priorite" value="3">Haute<br> 
<span class="erreur">${erreurs['priorite']}</span> 

那些是在servlet

兩種方法
CreationTicketForm creationticket = new CreationTicketForm(ticketDao); 
Ticket ticket = creationticket.soumettreTicket(request); 

而且錯誤總是來自方法soumettreTicket(request);

看一看:

/*error -->*/int idemp = Integer.parseInt(request.getParameter("idemp")); 
/*error -->*/int priorite = Integer.parseInt(request.getParameter("priorite")); 

這裏的錯誤:

java.lang.NumberFormatException: For input string: "" 
java.lang.NumberFormatException.forInputString(Unknown Source) 
java.lang.Integer.parseInt(Unknown Source) 
java.lang.Integer.parseInt(Unknown Source) 
projet.helpdesk.form.CreationTicketForm.soumettreTicket(CreationTicketForm.java:29) 
projet.helpdesk.servlets.CreationTicket.doPost(CreationTicket.java:32) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:661) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:742) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 

線29是第一一個我標記的 「錯誤 - >」

+0

request.getParameter(「idemp」)爲空。 –

+0

你看過html頁面的源代碼嗎?我想$ {masession.idemp}會返回空字符串,這就是爲什麼它不能被轉換爲數字。 –

+0

我在一個只包含'

$ {masession.idemp}'

的test.jsp文件中試了一下,它傳遞給我正確的員工ID,所以在JSP文件中變量不是空的。 – TheNorth

回答

0

解決:

我避免收集參數,因爲它產生我上面引述的問題後直接移動到parseInt函數()方法。

示例。

private int getPriorite(HttpServletRequest request) 
{ 
    String pr = request.getParameter("priorite"); 
    if(!pr.isEmpty()) 
    { 
     int priorite = Integer.parseInt(pr); 
     return priorite; 
    } 
    else return 0; 
} 
0

它可以是一個問題與idemp的吸氣劑。 即,idemp的吸氣劑名稱必須爲getIdemp(),以便您能夠通過表達式語言(${masession.idemp})獲得該名稱。 試試吧,讓我知道它是否可以解決您的問題。

+0

正如我在上面的評論中所說的,我可以顯示'$ {masession.idemp}' 因此,setter和getter不參與這個問題,而且它們固定在getIdemp和setIdemp – TheNorth