在jsp頁面,一個表單如果字段很多的話,要寫很多request.getParameter(name)之類的代碼,如果用web framework的話,則可以免去寫這些代碼的麻煩。但如果不用framework是否也可以達到參數自動填充的功能呢? 答案是肯定的。

          ??? 下面是我在就業網重構時用到的一個java類,其中就是對BeanUtils進行了簡單的封裝。

          ???import java.sql.Date;
          ???import java.util.Map;


          ?? import org.apache.commons.beanutils.BeanUtils;
          ?? import org.apache.commons.beanutils.ConvertUtils;
          ?? import org.apache.commons.beanutils.converters.SqlDateConverter;

          ?? public class NullSafeBeanUtils {
          ??

          ?? public final static String EMPTY_STRING = "";
          ?
          ?? public static boolean isNull(Object obj) {
          ?????? return obj == null;
          ?? }

          ?? public static String getProperty(Object bean, String property) {
          ????? ?if (bean == null) {
          ?????????? ?return EMPTY_STRING;
          ????? ?}
          ??? ?try {
          ???????? ?String str = BeanUtils.getProperty(bean, property);
          ???????? ?if (str == null) {
          ????????????? return EMPTY_STRING;
          ??????? ?}
          ??????? return str;
          ???? } catch (Exception e) {
          ??????? ?return EMPTY_STRING;
          ?? }
          ? }

          ??public static void populate(Object bean, Map props) {
          ??? ?if (bean == null) {
          ??????? return;
          ???? }
          ?? ?try {
          ???? SqlDateConverter con = new SqlDateConverter(new Date(System.currentTimeMillis()));
          ????? ConvertUtils.register(con, java.sql.Date.class);
          ????? BeanUtils.populate(bean, props);
          ?? } catch (Exception e) {
          ??? ?e.printStackTrace();
          ?? }
          ?}
          ?//?此處省略了一些其他代碼
          ?}


          ?


          ??? 在這里,poplulate方法就是我用來自動填充參數的。要實現自動填充,只需簡單調用此方法就行了。看一個例子:


          ??? JobExperience jobExp = new JobExperience();

          ??? NullSafeBeanUtils.populate(jobExp, request.getParameterMap());


          ?? 是不是簡單了許多?要注意的是表單的各輸入字段名要和bean的各屬性名對應才能自動填充。另外NullSafeBeanUtils 的getProperty方法也很有用,可以避免寫

          ?? if (bean != null) {

          ????? yyy = bean.getXXX()==null?"":bean.getXXX()

          ???}

          ?? 這樣的代碼,直接寫NullSafeBeanUtils.getProperty(bean, "XXX")就可以了。

          posted on 2006-08-24 12:35 bluestone 閱讀(950) 評論(3)  編輯  收藏 所屬分類: Java
          Comments

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          主站蜘蛛池模板: 逊克县| 新沂市| 灌云县| 嵊泗县| 颍上县| 石台县| 宕昌县| 巴南区| 井冈山市| 嵊泗县| 瑞丽市| 荃湾区| 南通市| 博兴县| 贡觉县| 民乐县| 靖州| 元江| 佳木斯市| 巴中市| 利津县| 繁昌县| 宜丰县| 阿鲁科尔沁旗| 札达县| 德阳市| 西安市| 沅陵县| 商丘市| 开化县| 谢通门县| 丰城市| 万荣县| 邹平县| 都江堰市| 德庆县| 荣昌县| 神农架林区| 太湖县| 台山市| 丘北县|