随笔-60  评论-35  文章-15  trackbacks-0
作者:邱洋
QQ:1964477

有一个动态的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文件中声明的表单名相同

posted on 2006-08-31 23:27 Q系列类、方法、变量…… 阅读(322) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: