Javaのリフレクション使ってリクエスト取得を楽する
とりあえずこんな感じで取れるのかな?
・・・配列で来た時どーしよ...
public class ReflectUtil{ public Serializable req2Bean(HttpServletRequest req, Serializable bean ) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException{ if(null==req||null==bean) return null; final int INDEX=3; Pattern pattern=Pattern.compile("^set.*"); //セッター名決め打ち Matcher matcher=null; String setter=null; String key=null; Class cls=bean.getClass(); Method[] methods=cls.getMethods(); for(Method method : methods){ setter=method.getName(); matcher= pattern.matcher(setter); if(!matcher.matches()) continue; Class[] params=method.getParameterTypes(); if(1!=params.length) continue; //手抜き、引数が1個のメソッド以外はスキップ Class param=params[0]; key=StringUtils.underscore(setter.substring(INDEX)); //手抜き //手抜き if(String.class==param){ System.out.println("(String)"+setter); if(null!=req.getAttribute(key)) method.invoke(bean,(String)req.getAttribute(key)); } if(Integer.class==param){ /* Integer用の処理 */ } if(Long.class==param){ /* Long用の処理 */ } } return bean; } }