如何通过selectbox在Servlet中发送整数值

时间:2013-12-13 06:56:40

标签: java servlets

我有一个selectBox,其中包含从1到10的值我将值发送到Servlet进行一些计算。但它是以字符串形式来到Servlet,因为Integer.parseInt()不能在这里工作是我的代码< / p>

 <form action="LinkServlet">                    
                <center><select name="connections" size="3" style="background-color: bisque;">
                        <option>-- Select--</option>
                        <option value="1">1</option>
                        <option value="2>2</option>
                        <option value="3">3</option>
                        <option value="4">4</option>
                        <option value="5">5</option>
                        <option value="6">6</option>
                        <option value="7">7</option>
                        <option value="8">8</option>
                        <option value="9">9</option>
                        <option value="10">10</option>
                    </select>
                    <input type="submit" value="Show"/>

                </center>
            </form>

我收到java.lang.NumberFormatException:null是错误,在Servlet中我捕获的值为

        int No_of_Conn =Integer.parseInt(request.getParameter("connections"));

3 个答案:

答案 0 :(得分:0)

您在request.getParameter("connections")可能

中收到空

答案 1 :(得分:0)

您的代码有两种可能发生的事情:

  1. 如果您没有选择任何值,那么当您执行request.getParameter("connections")
  2. 时,null将是Servlet中获得的值
  3. 如果选择第一个值,即--Select--,则不是数字。因此,如果您尝试使用Integet.parseInt,则会出现异常。
  4. 因此,在上述两种情况下,由于该值为null或不是数字,因此您将获得异常。在所有其他情况下,如果您选择介于1或10之间的值,它将正常工作。

    您有两个选择:

    1. 在客户端上进行JavaScript验证,以便不正确的值不会传递给服务器。
    2. 此外,我还建议对Servlet端进行检查,这样就不会继续使用任何解析或代码逻辑,直到输入值不符合您的预期。

答案 2 :(得分:0)

<option value="2>2</option>错误,请<option value="2">2</option>

enter image description here

当我更改为<option value="2">2</option>时,我会从UI获取参数值。请参阅firebug控制台。另请参阅servlet doPost System.out.println(request.getParameter("connections"));正在打印2