Sun
是选择你爱的人还是爱你的人?
posts - 8,comments - 14,trackbacks - 0

今天有人问前台表单form动态生成,后台使用DynaActionForm怎么用,说了他没懂,就写了个例子。

Action配置

<action
      attribute
="testMappingForm"
      input
="/jsp"
      name
="testMappingForm"
      path
="/testMapping"
      scope
="request"
      type
="com.modo.struts.action.TestMappingAction" />


ActionForm配置

<form-bean name="testMappingForm" type="org.apache.struts.action.DynaActionForm">
        
<form-property name="fnames" type="java.util.HashMap"></form-property>
    
</form-bean>

请注意name属性,这个属性后面要用到。


然后是页面index.jsp,这里只模拟动态

<html:form action="/testMapping.do" method="post">
   
<%
   
for(int i=0;i<5;i++){   
   
%>
           
<html:text property="<%="fnames(name_"+i+")"%>" value="<%="gangye_"+i%>"></html:text><br>
   
<%}%>
   
<br>
   
<html:submit value="Submit Form" />
   
</html:form>

请注意html:text的property标签。


index.jsp效果如下

后台Action

public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
            HttpServletResponse response) {
        HashMap   hm
=(HashMap)((DynaActionForm)form).get("fnames");
        Iterator it 
= hm.entrySet().iterator();
        Map.Entry entry 
= null;
        
while(it.hasNext()){
            entry  
= (Map.Entry)it.next();
            System.out.println(entry.getKey() 
+ " = " + entry.getValue());
        }
        
return null;
    }


输出表单项

name_4 = gangye_4
name_0 
= gangye_0
name_2 
= gangye_2
name_1 
= gangye_1
name_3 
= gangye_3



 



 

posted on 2010-04-20 15:56 .Sun 阅读(2271) 评论(5)  编辑  收藏 所属分类: 随笔

FeedBack:
# re: 关于struts动态form_DynaActionForm
2010-05-18 09:18 | iceblooded
java.lang.ClassCastException: com.modo.struts.action.TestMappingAction  回复  更多评论
  
# re: 关于struts动态form_DynaActionForm
2011-02-24 20:29 | 蒋承洋
谢谢你,我学到知识了...  回复  更多评论
  
# re: 关于struts动态form_DynaActionForm
2011-05-04 16:30 | 卢煜
证实有效!  回复  更多评论
  
# re: 关于struts动态form_DynaActionForm
2011-05-04 16:33 | 卢煜
牛人,我在这个问题上纠结了一天,试过很多方法,最终问题在你这得到解决。
小弟感激不禁!  回复  更多评论
  
# re: 关于struts动态form_DynaActionForm[未登录]
2014-04-23 04:00 | lj
请教下牛人:
<form-property name="fnames" type="java.util.ArrayList"></form-property>

在JSP输入页面如何取得这个fnames,  回复  更多评论
  

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


网站导航: