jsp的request.getParameter獲取不到表單參數(shù)
可能原因: 1: form表單中的控件沒有定義name屬性 2: form表單中的控件被設(shè)置成disabled 3: form表單的enctype="multipart/form-data"是一種用于上傳文件的表單 |
解決方法: 對于第三種情況我們直接request.getParameter來取參數(shù)值是取不到的 我們可以借用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; /** *獲取各種類型表單的表單參數(shù) *@paramrequest HttpServletRequest請求對像 * @paramparamName 參數(shù)名 *@return *@throwsFileUploadException */ publicstatic String getParameterValue(HttpServletRequest request,String paramName) throws FileUploadException{ boolean
isMultipart = ServletFileUpload. 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"))//中文轉(zhuǎn)碼 } } } }else{ return new String(request.getParameter(paramName).getBytes("ISO8859-1"))//中文轉(zhuǎn)碼 } return""; } |