首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DynaForm Primefaces扩展收集提交的数据

DynaForm Primefaces扩展收集提交的数据
EN

Stack Overflow用户
提问于 2015-06-05 14:35:36
回答 1查看 302关注 0票数 0

我在Primefaces扩展中使用DynaForm。我已经生成了一个动态表单,但问题是如何从控制器中恢复提交的数据。

下面是我如何生成我的表单:

这是控制器的一面

代码语言:javascript
复制
    model = new DynaFormModel();  

    DynaFormRow row;

    allfieldMessageList=getAllfieldMessageList();

    for(FilledMessageField f:allfieldMessageList)
    {
        // 1. row  
        row = model.createRegularRow();  
        FilledMessageField fmf=new FilledMessageField();
        DynaFormLabel label11 = row.addLabel(fmf.getField().getName());  
        DynaFormControl control12 = row.addControl(fmf, "input");  
        label11.setForControl(control12);  
    }

这是网页的一面:

代码语言:javascript
复制
<h:form id="addMessageIDForm" rendered="true">
        <pe:dynaForm id="dynaForm" value="#{messageValuesController.model}" 
            var="data" widgetVar="dynaFormWidget" >     
            <pe:dynaFormControl type="input" for="txt" >
            <p:panelGrid columns="2">
                <p:inputText id="txt" value="#{data.value}"
                    required="#{data.required}" />
                    </p:panelGrid>
            </pe:dynaFormControl>
        </pe:dynaForm>
       <p:commandButton value="Submit" action="#{messageValuesController.saveMessageTemplate}" process="dynaForm"  />  
</h:form>

有人知道这件事吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-05 15:52:36

正如素数面扩展展示所指出的,类似这样的东西会起作用:

代码语言:javascript
复制
List<FilledMessageField> fields = new ArrayList<FilledMessageField>();  
for (DynaFormControl dynaFormControl : model.getControls())  
    if (dynaFormControl.getData() instanceof FilledMessageField)
        fields.add((FilledMessageField) dynaFormControl.getData());

但出于好奇,如果不使用FilledMessageField f:allfieldMessageList,为什么要迭代f呢?在填充List< FilledMessageField>控件时,您可以只使用一个DynaForm并将您的模型项添加到它中,这样就不需要使用昂贵的instanceof检查将其从模型中提取出来。

注:

此外,对我来说,只对输入表单使用DynaForm似乎有点过分。您可以使用一个简单的<ui:repeat>,其中包含<p:inputText>,使用fields列表作为支持集合。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30669250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档