2013-12-02 4 views
1

Я пытаюсь отправить форму с текстовыми полями, текстовой областью, полем файлов и т. Д. В форме JSP. Я использую общедоступную загрузку файла для этой формы.Не получать значение текстовой области с загрузкой файла JSP и Servet 2.5

Вот моя JSP форма:

<form name="add_product_form" id="add_product_form" enctype="multipart/form-data" method="post" action="Product.Add"> 
    <div id="form-body"> 
     <div id="lebel"> 
      <font color="red">*</font>Product Name: 
     </div> 
     <div id="field"> 
      <input type="text" name="product_name" id="product_name" value=""> 
     </div> 
     <div id="lebel"> 
      <font color="red">*</font>SKU No: 
     </div> 
     <div id="field"> 
      <input type="text" name="sku_no" id="sku_no" value=""> 
     </div> 
     <div id="lebel"> 
      <font color="red">&nbsp;</font>In Date: 
     </div> 
     <div id="field"> 
      <input type="text" name="in_date" id="in_date" value=""> 
     </div> 
     <div id="lebel"> 
      <font color="red">&nbsp;</font>Upload Image: 
     </div> 
     <div id="field"> 
      <input type="file" name="upload_image" id="upload_image" value=""> 
     </div> 
     <div id="lebel"> 
      <font color="red">&nbsp;</font>Description: 
     </div> 
     <div id="field"> 
      <textarea name="description" id="description"></textarea> 
     </div> 
     <div id="lebel"> 
      &nbsp; 
     </div> 
     <div id="button_field"> 
      <input type="submit" name="add_product_button" id="add_product_button" value="Add Product"> 
     </div> 
    </div> 
</form> 

Я получаю значение текстовых полей с помощью следующих методов.

List fileItems = upload.parseRequest(request); 
// Process the uploaded file items 
Iterator i = fileItems.iterator(); 

while (i.hasNext()) 
{ 
    FileItem fi = (FileItem)i.next(); 
    if (!fi.isFormField()) 
    { 
     // Get the uploaded file parameters 
     String fieldName = fi.getFieldName(); 
     String value = fi.getString(); 
     fileName = fi.getName(); 
     String contentType = fi.getContentType(); 
     boolean isInMemory = fi.isInMemory(); 
     long sizeInBytes = fi.getSize(); 
     // Write the file 
     if(fileName.lastIndexOf("\\") >= 0) 
     { 
      file = new File(filePath + 
      fileName.substring(fileName.lastIndexOf("\\"))) ; 
     } 
     else 
     { 
      file = new File(filePath + 
      fileName.substring(fileName.lastIndexOf("\\")+1)) ; 
     } 
     fi.write(file) ; 
    } 
    else 
    { 
     String name = fi.getFieldName(); 
     String value = fi.getString(); 
     if(name.equals("product_name")) 
     { 
      productName = value; 
     } 
     else if(name.equals("sku_no")) 
     { 
      skuNo = value; 
     } 
     else if(name.equals("in_date")) 
     { 
      newDateString = value; 
     } 
     else if(name.equals("description")) 
     { 
      productDesc = value; 
     } 
    } 
} 

Но я не получаю значение «TextArea» я использовал в моей форме с именем «Descripton».

Может ли кто-нибудь помочь мне получить значение этой текстовой области при отправке формы.

Thanks

+0

это ошибка орфографии в «дескрипторе» или просто тип –

+0

Не могли бы вы показать код .parseRequest (request), как вы получаете описание param, –

ответ

0

Не удалось найти решение напрямую.

Для реализации этого я использовал скрытое поле и jquery.

При нажатии кнопки «Отправить», я smet значение текстовой области в скрытом поле, а затем отправьте форму.

Вот код JQuery:

$('#add_product_button').click(function() 
{ 
     var description = $("#description").val(); 
     $("#hidden_description").val(description); 
     $("add_product_form").submit(); 
}); 
2

есть некоторые проблемы с этим. вы можете дать стиль текстовому поле и посмотреть, как textarea, который поможет вам

0

я столкнулся с той же проблемой, и я решил его!
Просто поместите свой «» тег текстовой перед «тип ввода =„файл“....» тег,
и сервлетов может получить значение TEXTAREA

Я не говорящий по-английски, и надеюсь, что вы можете понять мое решение :-)