2014-01-13 98 views
0

我的目標是將值從jsp傳遞給servlet。我設法傳遞了res​​ervationId和tableId的值,但不是staffId。使用URL將值從JSP傳遞到SERVLET

錯誤是:

java.lang.NumberFormatException:對於輸入字符串: 「STAFFID是」

爲什麼會這樣呢?是否因爲staffId從DROPDOWN LIST檢索?

幫助將不勝感激!

<c:forEach items="${table}" var="table"> 
<tr> 
<td>${table.reservationId}</td> 
td><select name="staffId"> 
<c:forEach var="staff" items="${staff}"> 
<option value="${staff.staffId}">${staff.staffName}</option> 
</c:forEach> 
</select> 
</td> 

<td> 
<a href="TableEditServlet?action=assign&reservationId=<c:out value="${table.reservationId}"/>&tableId=<%= request.getParameter("tableId") %>&staffId=<c:out value="${staff.staffId}"/>"> 

<input value="Assign" class="btn"></a></td> </tr> 

</c:forEach> 

回答

0

您應該使用JavaScriptJQuery<select name="staffId" id="someId">獲得的數據對於選擇的行。

UPDATE(使用javascript)

... add this javascript section before <body> 
<script> 
function assign(reservationId) { 
document.location="TableEditServlet?action=assign&reservationId="+reservationId+"&staffId="+document.getElementById("staffId_"+reservationId).value; 
// add tableId if you need as well 
} 
</script> 
... 
    <c:forEach items="${table}" var="table"> 
    <tr> 
    <td>${table.reservationId}</td> 
    <td> 
    <select name="staffId" id="staffId_${table.reservationId}"> 
    <c:forEach var="staff" items="${staff}"> 
    <option value="${staff.staffId}">${staff.staffName}</option> 
    </c:forEach> 
    </select> 
    </td> 
    <td> 
    <input value="Assign" class="btn" onclick="assign('<c:out value="${table.reservationId}"/>')"> 
    </td> 
    </tr> 
    </c:forEach> 
+0

是否有這2種方法旁邊的任何其他方式? – newbieinjavaversion2

+0

你想從用戶選擇的組合框提交staffId - 它是客戶端,你不能使用JSTL''因爲它是服務器端編程。 – Alex

+0

但是,員工ID取自數據庫。這就是爲什麼我用c:out來顯示jsp – newbieinjavaversion2