用 new DynaValidatorForm(); 报空指针异常,挺郁闷。

解决方案 »

  1.   

    是在Action 里面吗?
    如果是的
    DynaValidatorForm a =(DynaValidatorForm) form;
    这样就行
      

  2.   

    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    DynaValidatorForm  loginForm = (DynaValidatorForm) form;// TODO Auto-
    action 方法体里面获得
      

  3.   


    DynaValidatorForm  form1 = (DynaValidatorForm) form;
    String  username=(String)form1.get("username");//取值
      

  4.   

    你要自己写个类继承DynaValidatorForm,直接实例化是不行的,
    就可以了。但一般不用实例化DynaValidatorForm。
      

  5.   

    需要确定是不是在action里,如果在struts的Action里,execute中有一个ActionForm 的参数,直接强转,
    但需要保证struts-config里对应的form配置成DynaValidatorForm
      

  6.   

     DynaActionFormClass dynaClass = DynaActionFormClass.createDynaActionFormClass(mapping.getModuleConfig().findFormBeanConfig("updateUserForm"));
            DynaValidatorForm dvf=new DynaValidatorForm();
            try {
                dvf = (DynaValidatorForm)dynaClass.newInstance();
            } catch (IllegalAccessException e) {
                // TODO 自动生成 catch 块
                e.printStackTrace();
            } catch (InstantiationException e) {
                // TODO 自动生成 catch 块
                e.printStackTrace();
            }
    这样可以获得动态表单