KickJava   Java API By Example, From Geeks To Geeks.

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


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

3 package jodd.bean.loader;
4
5 import jodd.bean.BeanUtil;
6 import jodd.bean.BeanException;
7
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import java.util.Enumeration JavaDoc;
10
11 /**
12  * Populates object from serlvet request parameters.
13  * <p>
14  * By java servlet specifications, parameter values are always String arrays
15  * (String[]). That is how they are sent to BeanUtil.setProperty(),
16  * except in case when this array contains just one String element. In that
17  * case it is sent as a single String.
18  *
19  */

20 public class RequestParamBeanLoader implements BeanLoader {
21
22     private boolean trim;
23
24     public RequestParamBeanLoader() {
25     }
26
27     public RequestParamBeanLoader(boolean trim) {
28         this.trim = trim;
29     }
30
31
32     public static void loadBean(Object JavaDoc bean, Object JavaDoc request, boolean trim) {
33         if (request instanceof HttpServletRequest JavaDoc) {
34             Enumeration JavaDoc paramNames = ((HttpServletRequest JavaDoc)request).getParameterNames();
35             while (paramNames.hasMoreElements()) {
36                 String JavaDoc paramName = (String JavaDoc) paramNames.nextElement();
37                 String JavaDoc[] paramValues = ((HttpServletRequest JavaDoc)request).getParameterValues(paramName);
38                 if (paramValues == null) {
39                     continue;
40                 }
41                 if (paramValues.length == 0) {
42                     continue;
43                 }
44                 if (trim == true) {
45                     for (int i = 0; i < paramValues.length; i++) {
46                         paramValues[i] = paramValues[i].trim();
47                     }
48                 }
49                 try {
50                     if (paramValues.length == 1) { // use just String
51
BeanUtil.setPropertyForcedSilent(bean, paramName, paramValues[0]);
52                     } else { // use String array
53
BeanUtil.setPropertyForcedSilent(bean, paramName, paramValues);
54                     }
55                 } catch (BeanException ex) {
56                     // ignore exception
57
}
58             }
59         }
60     }
61
62     public void load(Object JavaDoc bean, Object JavaDoc request) {
63         loadBean(bean, request, trim);
64     }
65
66 }
67
Popular Tags