2013-02-15 50 views
0

我的jspx頁面上的下拉列表有問題。我看到變量值顯示在頁面上,但我無法獲得選定的值。輸入字符串是空的,所以我得到無法從下拉菜單訪問選定的值

java.lang.NumberFormatException: For input string: "" 

在這一行:

int idRoom = Integer.parseInt(requestInformation.getRequestParameter("idRoom")); 

這是我的JSPX頁:

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" 
xmlns:c="http://java.sun.com/jsp/jstl/core" 
xmlns:fmt="http://java.sun.com/jsp/jstl/fmt" 
version="2.0"> 
<jsp:directive.page contentType="text/html; charset=Utf-8"/> 
<html> 
    <head> 
    <title><fmt:message bundle="${loc}" key="page.newOrders"/></title> 
</head> 
<body> 
<jsp:directive.include file="/jsp/header.jspx"/> 
<h2><fmt:message bundle="${loc}" key="label.greeting"/>, ${user.firstName} ${user.lastName}.</h2> 
     <table cellspacing="15"> 
     <tr>     
     <td align="center"><b><fmt:message bundle="${loc}" key="field.idOrder"/>:</b></td> 
     <td align="center"><b><fmt:message bundle="${loc}" key="field.availableRooms"/>:</b></td> 
     </tr> 
     <c:forEach items="${orderList}" var="cell"> 
     <tr>             
      <td align="center">${cell.id}</td> 
       <c:choose> 
        <c:when test="${cell.roomList == null}"> 
         <td align="center"><fmt:message bundle="${loc}" key="message.noRooms"/></td> 
        <td></td>        
       </c:when> 
       <c:otherwise> 
       <form action="Controller" method="get" id="acceptForm"> 
        <td align="center"> 
          <select name="selectedRoom"> 
          <c:forEach items="${cell.roomList}" var="room"> 
          <option value="${room.id}">${room.id}</option> 
         </c:forEach> 
        </select> 
        </td> 
        <td align="center"> 
         <fmt:message bundle="${loc}" key="button.accept" var="accept"/> 
        <a href="Controller?command=accept&amp;idOrder=${cell.id}&amp;idRoom=${selectedRoom}" onclick="document.getElementById('acceptForm').submit()">${accept}</a>         
        </td>             
       </form>               
       </c:otherwise> 
      </c:choose>   
       <td align="center"> 
       <fmt:message bundle="${loc}" key="message.rejectOrder" var="reject"/> 
        <c:url value="Controller" var="rejectUrl"> 
         <c:param name="command" value="reject"/> 
        <c:param name="idOrder" value="${cell.id}"/> 
       </c:url> 
        <a href="${rejectUrl}" onClick="return window.confirm('${reject}')"> 
         <fmt:message bundle="${loc}" key="button.reject"/> 
        </a> 
      </td>        
      </tr> 
      </c:forEach> 
    </table>    
    <jsp:directive.include file="/jsp/footer.jspx"/> 
    </body> 
</html> 
</jsp:root>  

回答

1

請您嘗試一下這樣的:

int idRoom = Integer.parseInt(requestInformation.getRequestParameter("idRoom").toString()); 

並告訴你是否解決了你的問題?

另外,看看你的例外,它看起來像該參數包含一個空字符串。無論你是不是調用合適的參數,或者檢查大小寫...

或者使用Firebug確保請求包含參數名爲idRoom

謝謝...

Mr.777

+0

沒關係,'requestInformation.getRequestParameter(「idRoom」)'已經返回'String'。而且我知道'String'是空的,我的問題是爲什麼它是空的,我該如何解決這個問題。 – 2013-02-15 15:21:17

+0

我告訴過你,你需要調試它....看看參數名稱是否正確,參數值是在窗體中,並且正確發送。 – dosdebug 2013-02-15 15:28:20

+0

在Firebug中,我看到: 2013-02-15 15:55:48