jsp的request.getParameter獲取不到表單引數
1: form表單中的控制元件沒有定義name屬性
2: form表單中的控制元件被設定成disabled
3: form表單的enctype="multipart/form-data"是一種用於上傳檔案的表單
[b]解決方法:[/b]
對於第三種情況我們直接request.getParameter來取引數值是取不到的
我們可以借用apache的上傳元件來解決
用到jar包commons-fileupload-1.1.1.jar
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
*獲取各種型別表單的表單引數
*@paramrequest HttpServletRequest請求對像
* @paramparamName 引數名
*@return
*@throwsFileUploadException
*/
publicstatic String getParameterValue(HttpServletRequest request,String paramName) throws FileUploadException{
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if(isMultipart==true){
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List fileItemList = upload.parseRequest(request);
if(fileItemList!=null){
for(Iterator itr=fileItemList.iterator();itr.hasNext();){
FileItem fileItem = (FileItem)itr.next();
if(fileItem.getFieldName().equalsIgnoreCase(paramName)){
return new String(fileItem.getString().getBytes("ISO8859-1"))//中文轉碼
}
}
}
}else{
return new String(request.getParameter(paramName).getBytes("ISO8859-1"))//中文轉碼
}
return"";
}