ActionFormをPOJOにて
POJOをActionFormとして使ってみたのはいいけれど、Viewで値を取り出そうとしたら実はBeanValidatorFormなので全然駄目だった…POJOActionだったのでリクエストが触れずAction実行後にAOPを使ってリクエストにPOJOのインスタンスに戻して突っ込むことにした。
・s2struts.dicon
・インタセプタをMeasureTimeInterceptorを真似て作成
public class PojoBeanInjectInterceptor implements MethodInterceptor { public Object invoke(MethodInvocation invocation) throws Throwable { Object ret = invocation.proceed(); Object[] args = invocation.getArguments(); HttpServletRequest request = (HttpServletRequest) args[0]; String formBean = *1; } return ret; } }
とりあえず希望通りに動いたのでよしとしよう(実はこんなことしなくてもよかったりして)
*1:ActionMapping) args[4]).getName(); Object result = request.getAttribute(formBean); if (result instanceof BeanValidatorForm) { request.setAttribute(formBean, ((WrapDynaBean) (((BeanValidatorForm) result).getInstance())).getInstance(