我有这个html将orderID
的值传递给一个完全正常工作的模态。但是,在servlet上,我似乎无法访问orderID
的值,错误为java.lang.NumberFormatException: null
。这是我的代码:
HTML:
<a data-toggle="modal" class="clickThis" data-id="<%=o.getOrderID()%>" href="laboratories.html#myModal">
<i class="fa fa-send">
</i>
</a>
使用Javascript:
<script>
$(document).on("click", ".clickThis", function () {
var orderID = $(this).data('id');
$(".modal-body #orderid").val(orderID);
});
</script>
模态:
<div class="modal-body">
<input name="orderid" id="orderid">
<table>
<tr>
<td>
Upload File:
</td>
<td>
<input type="file" name="file" id="file" accept="image/png, .txt, application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/msword"/> <br>
</td>
</tr>
</table>
</div>
的Servlet
String orderid = request.getParameter("orderid");
System.out.println(orderid);
int orderID = Integer.parseInt(orderid);
System.out.println(orderID);
在第一个System.out.println
,我得到null
。之后,我收到了此行中的错误:int orderID = Integer.parseInt(orderid);
答案 0 :(得分:1)
一个原因可能是您正在使用enctype="multipart/form-data"
,在这些情况下,除了input type="file"
之外,其他参数将返回null。见answer
答案 1 :(得分:1)
您可以以正常方式检索参数但不能。 request.getParameter
无效。
您必须从多部分请求流中检索它,这有些复杂。您可以使用 Apaceh commans file upload api。这将使这项任务变得更加容易。
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
Iterator<FileItemStream> fileIter = upload.getItemIterator(request);
HashMap<String,String> parameters = new HashMap<String,String>()
while(fileIter.hasNext()){
FileItemStream fileItem = fileIter.next();
if(fileItem.isFormFIeld()){
paramName = item.getFieldName();
InputStream stream = item.openStream();
paramValue = Streams.asString(stream);
parameters.put(paramName,paramValue )
}else{
InputStream instrm = item.openStream();
//Receive and save File
}
}
希望这会有所帮助......