Невозможно определить значение из 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>
Другие вопросы по тегам