【问题标题】:Create dynamic table with webflow and grails使用 webflow 和 grails 创建动态表
【发布时间】:2013-10-16 20:02:25
【问题描述】:

我正在尝试在一个页面上创建一个带有动态表格的网络流。看起来像这样

 def startFlow = {

    contact {
        on('next') {
            flow.developer = params.developer
            flow.project = params.project
            flow.division = params.division
            flow.projectResponsible = params.projectResponsible
            flow.email = params.email

            [flow : flow]
        }.to('ipcount')
        on('cancel').to('finish')
    }
    ipcount{
        on('next'){
            flow.ipcount = params.int('ipcount')

            [flow: flow]
        }.to('systems')
        on('cancel').to('finish')
    }
    systems{
        on('next') {
            flow.hoster= params.hoster
            flow.ip = params.ip
            flow.os = params.os
            flow.dns = params.dns
            flow.systemDate = params.systemDate

            [flow : flow]
        }.to('url')
        on('cancel').to('finish')
    } ....

问题是我每次系统的数量都可能不同(1...n)。 一个想法是在应该创建多少条目之前询问页面(ipcount)。

我的视图是这样的

  <g:set var="count" value="${flow.ipcount}" />
                 <g:each in="${(1..'${count}')}">
                  <tr class="prop">
                    <td valign="top" class="name">
                        <label for="ip">IP Adresse:</label>
                    </td>
                   <td valign="top">
                    <td valign="top" class="value ${hasErrors(bean:hosterInstance,field:'ip','errors')}">
                        <input type="text" id="ip" name="ip" value="${params.ip}" />
                    </td>
                    <td valign="top" class="name">
                        <label for="dns">DNS:</label>
                    </td>
                    <td valign="top">
                        <input type="text" id="dns" name="dns" value="${params.dns}" />
                    </td>
                    <td valign="top" class="name">
                        <label for="os">Operating System:</label>
                    </td>
                    <td valign="top">
                        <input type="text" id="dns" name="dns" value="${params.os}" />
                    </td>
                </tr>
               </g:each>

除此之外,这不起作用,因为我收到内部服务器错误:(java.lang.String 无法转换为 java.lang.Integer)如果我可以在页面上动态显示表格行会更好。 这是一个问题:这是否可能与 webflow 以及如何?特别是我不知道如何处理flow参数以及如何将webflow末尾收集的条目保存到数据库中。

【问题讨论】:

    标签: grails groovy spring-webflow


    【解决方案1】:

    如果您需要处理对象列表,command objects 是您的最佳选择。它支持来自传入请求的数据绑定并将处理列表。

    您可以查看a related question,告诉您如何操作。

    在您看来,您需要处理输入名称中的索引。示例:

    考虑

    class System {
      String ip
      String dns
      ...
    }
    

    还有commandInstance.systemsList&lt;System&gt;

    <g:each in="${commandInstance.systems}" var="command" status="i">
    
      <input type="text" id="ip$i" name="systems[$i].ip" value="${command.ip}" />
    
    </g:each>
    

    【讨论】:

    • 对不起,我不明白你的回答。如何定义显示的条目数?如果我理解您的代码,这将呈现一个实例的所有字段。
    • 我编辑了我的变量名,以便对您更有意义。我正在遍历系统列表并打印他的属性。
    • 感谢您的编辑。这使它更清楚。但这不是我遇到的问题。我没有系统列表。我有一个使用 webflow 创建的表单,并且想要创建新条目以及如何在 webflow 中处理它们。
    • 您只想创建一个新实例或一个列表?无论如何,在这两种情况下,您都可以在 webflow 中附加命令。如果您需要多个实例,只需使用带索引的属性名称:command[0].ip, command[1].ip...
    猜你喜欢
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    相关资源
    最近更新 更多