DynaValidatorForm 赋值

private UsersDAO ud;
   
    public UsersDAO getUd() {
        return ud;
    }

    public void setUd(UsersDAO ud) {
        this.ud = ud;
    }

   
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
        Integer uid=Integer.parseInt( request.getParameter("uid").toString());
       
        Users u=ud.findById(uid);
        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();
        }

        dvf.set("username", u.getUsername());
        dvf.set("userpass", u.getUserpass());
        request.setAttribute("updateUserForm", dvf);

        return mapping.findForward("up");
    }

 

有一个动态的form配置如下:

< form-bean  name ="adminGroupModifyForm"  type ="org.apache.struts.validator.DynaValidatorForm" >
     
< form-property  name ="name"  type ="java.lang.String"   />
</ form-bean >


有一个jsp文件包括以下代码:

< html:form  action ="/adminGroupModify" >
    
< html:text  property ="name" >   
</ html:form >


现在要做的是动态的向name设置值,那么我们就在Action中动态生成adminGroupModifyForm,这样就可以直接实现以前用以下代码才能实现的效果了↓(下面这个是以前的实现方法)

< form  action ="xxx" >
   
< input  type ="text value= <c:out value=" ${requestScrop.name}"  />  ">
</ form >



(具体应用)实现动态装配struts-config.xml中的动态表单的方法如下:

有以下动态表单:

     < form-bean  name ="adminGroupModifyForm"  type ="org.apache.struts.validator.DynaValidatorForm" >
      
< form-property  name ="memo"  type ="java.lang.String"   />
      
< form-property  name ="upage"  type ="java.lang.Integer"   />
      
< form-property  name ="flag"  type ="java.lang.String"   />
      
< form-property  name ="lowage"  type ="java.lang.Integer"   />
      
< form-property  name ="name"  type ="java.lang.String"   />
      
< form-property  name ="id"  type ="java.lang.Integer"   />
    
</ form-bean >

在Action中输入以下代码:

    DynaActionFormClass dynaClass  =  DynaActionFormClass.createDynaActionFormClass( this .getServlet().findFormBean( " adminGroupModifyForm " ));
    DynaValidatorForm adminGroupModifyForm 
=  (DynaValidatorForm) dynaClass.newInstance();
    adminGroupModifyForm.set(
" id " ,nowgrouping.getId());
    adminGroupModifyForm.set(
" name " ,nowgrouping.getName());
    adminGroupModifyForm.set(
" upage " ,Integer.valueOf(nowgrouping.getUpage()));
    adminGroupModifyForm.set(
" lowage " ,nowgrouping.getLowage());
    adminGroupModifyForm.set(
" flag " ,nowgrouping.getFlag());
    adminGroupModifyForm.set(
" memo " ,nowgrouping.getMemo());
    request.setAttribute(
" adminGroupModifyForm " ,adminGroupModifyForm);


要注意两点
1、必须在Action类中执行
2、写入系统的request.setAttribute的属性名字,必须与xml文件中声明的表单名相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值