KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jodd > bean > loader > MultipartRequestBeanLoader


1 // Copyright (c) 2003-2007, Jodd Team (jodd.sf.net). All Rights Reserved.
2

3 package jodd.bean.loader;
4
5 import java.util.Iterator JavaDoc;
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 /**
13  * Populates java bean from {@link MultipartRequest} objects.
14  */

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 JavaDoc bean, Object JavaDoc request, boolean trim) {
26         if (request instanceof MultipartRequest) {
27             MultipartRequest mrequest = (MultipartRequest) request;
28             Iterator JavaDoc paramNames = mrequest.getParameterNames().iterator();
29             while (paramNames.hasNext()) {
30                 String JavaDoc paramName = (String JavaDoc) paramNames.next();
31                 String JavaDoc[] 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                         // send just String
46
BeanUtil.setPropertyForcedSilent(bean, paramName, paramValues[0]);
47                     } else {
48                         // send String array
49
BeanUtil.setPropertyForcedSilent(bean, paramName, paramValues);
50                     }
51                 } catch (BeanException bex) {
52                     // ignore exception
53
}
54             }
55
56             paramNames = mrequest.getFileParameterNames().iterator();
57             while (paramNames.hasNext()) {
58                 String JavaDoc paramName = (String JavaDoc) 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                     // ignore exception
74
}
75             }
76         }
77     }
78
79     public void load(Object JavaDoc bean, Object JavaDoc request) {
80         loadBean(bean, request, trim);
81     }
82 }
83
Popular Tags