Tomcat错误,麻烦读取会话范围变量

时间:2017-04-16 11:48:35

标签: jsp session tomcat servlets java-ee

我试图从JSP传递到servlet的变量是masession.idemp,它已从会话范围中恢复。

将其传递给servlet" / creerticket"通过:

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

这是&#34;优先级&#34;要传递给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行是我标记的第1行&#34;错误 - &gt;&#34;

2 个答案:

答案 0 :(得分:0)

idemp的吸气器可能存在问题。 也就是说,idemp的getter名称必须为getIdemp(),以便您能够通过表达式语言(${masession.idemp})获取它。 尝试一下,让我知道它是否解决了你的问题。

答案 1 :(得分:-1)

解决:

我在收集参数后避免直接转到parseInt()方法,因为它会产生我上面引用的问题。

例如

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