Невозможно определить значение из getParameter в сервлете
У меня есть страница просмотра с использованием JSP. У меня есть enctype="multipart/form-data", а также есть раскрывающееся поле с помощью опции выбора.
Вот мой код:
<form id="formNaikLimit" action="" enctype="multipart/form-data"
method="post">
<label for="jenisKartuLimit">Jenis Kenaikan Limit Kartu
Kredit </label> <select class="form-control mandatory"
name="jenisKartuLimit" required="required">
<option value="Sementara">Sementara</option>
<option value="Permanen">Permanen</option>
</select>
<div class="form-group-1" style="">
<input id="attachKtp" name="attachKtp" type="file" class="file"
required="required" accept=".png,.jpg,.pdf">
</div>
<div class="alert alert-danger"
style="margin-top: 10px; display: none;" id="sample"
data-for="attachKtp">Attachment KTP wajib diisi</div>
<br />
</form/>
А это мой сервлет
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
this.action = request.getParameter("action");
String temp = request.getParameter("jenisKartuLimit");
}catch(Exception e){}
}
Когда я пытаюсь отладить, я всегда получаю временное значение, равное нулю, почему я не могу прочитать выбранное значение jenisKartuLimit?
Спасибо за каждый ответ.
2 ответа
Является ли опция формы enctype="multipart/form-data" формы, которая не позволяет передавать другие данные формы? если это не позволяет, то каковы другие варианты, я должен отправить это дополнительное текстовое поле на сервер. Нет, нет проблем с использованием enctype="multipart/form-data". Вы можете получить другие поля, а не файл в такой форме.
При использовании enctype="multipart/form-data" вы не можете напрямую получить параметры, используя request.getParameter(name);. При его использовании поля формы недоступны в качестве параметра запроса, они включены в поток, поэтому вы не можете получить его обычным способом. Вы можете найти способ сделать это в документации по использованию commons-fileupload
в разделе "Обработка загруженных товаров".
или вы можете использовать версию Servlet 3.0, которая имеет поддержку нескольких частей, вы можете получить атрибут запроса вместе с загруженным файлом без помощи сторонних API-файлов.
Попробуйте добавить свойство name к элементам option
<option name="jenisKartuLimit" value="Sementara">Sementara</option>
<option name="jenisKartuLimit" value="Permanen">Permanen</option>