1 3 package jodd.bean.loader; 4 5 import java.util.Iterator ; 6 7 import jodd.bean.BeanUtil; 8 import jodd.bean.BeanException; 9 import jodd.servlet.upload.MultipartRequest; 10 import jodd.servlet.upload.FileUpload; 11 12 15 public class MultipartRequestBeanLoader implements BeanLoader { 16 private boolean trim; 17 18 public MultipartRequestBeanLoader() { 19 } 20 21 public MultipartRequestBeanLoader(boolean trim) { 22 this.trim = trim; 23 } 24 25 public static void loadBean(Object bean, Object request, boolean trim) { 26 if (request instanceof MultipartRequest) { 27 MultipartRequest mrequest = (MultipartRequest) request; 28 Iterator paramNames = mrequest.getParameterNames().iterator(); 29 while (paramNames.hasNext()) { 30 String paramName = (String ) paramNames.next(); 31 String [] paramValues = mrequest.getParameterValues(paramName); 32 if (paramValues == null) { 33 continue; 34 } 35 if (paramValues.length == 0) { 36 continue; 37 } 38 if (trim == true) { 39 for (int i = 0; i < paramValues.length; i++) { 40 paramValues[i] = paramValues[i].trim(); 41 } 42 } 43 try { 44 if (paramValues.length == 1) { 45 BeanUtil.setPropertyForcedSilent(bean, paramName, paramValues[0]); 47 } else { 48 BeanUtil.setPropertyForcedSilent(bean, paramName, paramValues); 50 } 51 } catch (BeanException bex) { 52 } 54 } 55 56 paramNames = mrequest.getFileParameterNames().iterator(); 57 while (paramNames.hasNext()) { 58 String paramName = (String ) paramNames.next(); 59 FileUpload[] uf = mrequest.getFiles(paramName); 60 if (uf == null) { 61 continue; 62 } 63 if (uf.length == 0) { 64 continue; 65 } 66 try { 67 if (uf.length == 1) { 68 BeanUtil.setPropertyForcedSilent(bean, paramName, uf[0]); 69 } else { 70 BeanUtil.setPropertyForcedSilent(bean, paramName, uf); 71 } 72 } catch (BeanException bex) { 73 } 75 } 76 } 77 } 78 79 public void load(Object bean, Object request) { 80 loadBean(bean, request, trim); 81 } 82 } 83 | Popular Tags |