2015-03-27 2 views
0

У меня есть этот html, который передает значение orderID модальному, который полностью работает. Однако на сервлете я не могу получить доступ к значению 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> 

Modal:

<div class="modal-body"> 
    <input name="orderid" id="orderid"> 
    <table> 
     <tr> 
      <td> 
       Upload File: &nbsp; 
      </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

, что ваша ошибка? – MeshBoy

+0

java.lang.NumberFormatException: null. Я получаю null от request.getParameter («orderid»); и не может преобразовать его в целое число. – nubteens

+0

Как вы называете сервлет? Проверьте, проходят ли правильные параметры через вкладку «Сеть» консоли вашего браузера. –

ответ

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 
    } 

} 

Надеется, что это помогает ...

+0

Нужно ли мне добавлять дополнительные файлы JAR с этим? – nubteens

+0

Да Файлы баз данных для загрузки файлов Apache и его зависимостей. https://commons.apache.org/proper/commons-fileupload/ –

+0

Разве это commons-fileupload-1.3.1-src.zip? Я все еще не могу заставить его работать. – nubteens

1

Одной из причин может быть то, что вы используете enctype="multipart/form-data", и в этих случаях остальные параметры возвращаются как null, кроме input type="file". См. Это answer

+0

Значит, это означает, что я не могу получить значение orderID, когда у меня есть enctype в моей форме? – nubteens

+0

Вы можете только с помощью другой методологии. – ArinCool

Смежные вопросы