我正在尝试以JSP形式提交带有文本字段,文本区域,文件字段等的表单。我正在使用此表格的公共文件上传。
这是我的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"> </font>In Date:
</div>
<div id="field">
<input type="text" name="in_date" id="in_date" value="">
</div>
<div id="lebel">
<font color="red"> </font>Upload Image:
</div>
<div id="field">
<input type="file" name="upload_image" id="upload_image" value="">
</div>
<div id="lebel">
<font color="red"> </font>Description:
</div>
<div id="field">
<textarea name="description" id="description"></textarea>
</div>
<div id="lebel">
</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”。
在提交表单时,有人可以帮助我获取此文本区域的值。
由于
答案 0 :(得分:2)
它有一些问题。你可以给文本框添加样式,看起来像textarea,这将帮助你
答案 1 :(得分:0)
无法找到直接解决方案。
为了实现这一点,我使用了隐藏字段和jquery。
点击提交按钮后,我在隐藏字段中输入了文本区域的值,然后提交表单。
这是jquery代码:
$('#add_product_button').click(function()
{
var description = $("#description").val();
$("#hidden_description").val(description);
$("add_product_form").submit();
});
答案 2 :(得分:0)
我遇到了同样的问题,我已经解决了!
只需将'textarea'标记放在'input type =“file”....'标记之前,
并且Servlet可以获得textarea值
我不是英语发言者,希望你能理解我的解决方案: - )