无法访问文本字段值
Can't access text field value
我有这个 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);
一个原因可能是您正在使用 enctype="multipart/form-data"
,在这些情况下,除了 input type="file"
之外,其他参数都返回为 null。看到这个 answer
您可以检索参数,但不能以正常方式检索。 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
}
}
希望这对您有所帮助...
我有这个 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);
一个原因可能是您正在使用 enctype="multipart/form-data"
,在这些情况下,除了 input type="file"
之外,其他参数都返回为 null。看到这个 answer
您可以检索参数,但不能以正常方式检索。 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
}
}
希望这对您有所帮助...