如何正确呈现复选框并获取在Grails中选中了哪些复选框的列表

时间:2016-05-09 17:05:43

标签: grails checkbox gsp

我已经尝试了一个多月,在grails中获取所选复选框的正确呈现,绑定和列表(请参阅此链接:How to get a list of checked boxes in grails)。

我可以使用以下代码从控制器中获取一个复选框列表: 包框架测试

导入groovy.io.FileType

class Read_dirController {

    def index() { 

        def list = []

        def dir = new File("/Users/ironmantis7x/Documents/business/test_files/APITest/utils")
        dir.eachFileRecurse (FileType.FILES) { file ->
          list << file
        }

        list.each {
            println it.name.replaceFirst(~/\.[^\.]+$/, '')
          }

        render(view: "index",  model: [name:list.name])

        params.list('fileName')

    }
def uri() {
        def api_link = String
        render(view: "index",  model: [name:url_link])

    }


        def displayForm() { }

        /*def submitForm(String fileName) {
            render params.list('fileName')
            //request.getParameterValues('fileName')
        }*/

        def submitForm() {
            def values = request.getParameterValues('fileName')
            //render(view: "submitForm")
            params.remove "_"
            render (view: "submitForm", model: [params.list('values')])
        }
}

工作正常.... 我可以使用以下代码在gsp中显示它:

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<meta name="layout" content="main"/>
<title>API Automation Test Page</title>
</head>
<body>
  <div class="body">
    <h2>Automation Test Page</h2>
    <h4>Please choose test(s) below ...</h4>

    <br>
    <h3>Tests</h3>
    <br>
    <div>
    <style>
    .columns3 {
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-count: 3; }
    </style>
        <g:form action="submitForm">
            <ul class="columns3">
                <g:each in="${name}" var="fileName" >
                    <g:checkBox value="${false}" name="${fileName}" id="${fileName.replaceFirst(~/\.[^\.]+$/, '')}" /> ${fileName.replaceFirst(~/\.[^\.]+$/, '')}<br>
                </g:each> 
            </ul>
            <br>
            <br>
            <g:submitButton name="Submit"/>
        </g:form>   
        </div>
        <br>
        <br>
<%--        <h4>Quick Test</h4>--%>
<%--        Input API manually: <g:textField name="url_link" value="${api_link}" /> --%>
<%--        <g:submitButton name="qtest" value="go!" />--%>
<%--        <br>--%>
<%--        <br>--%>
        API Output Response: <br>
        <g:textArea name="name" rows="300" cols="3000" style="resize: none;"/>
    </div>  
</body>
</html>

问题是: 当我选择一组复选框时,我得到一个空白列表(这里是提交表格gsp):

<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<meta name="layout" content="main"/>
<title>API Automation Test Page</title>
</head>
<body>
  <div class="body">
    <h2>Automation Test Page</h2>
    <h4>You have chosen the test(s) below.</h4>

    <br>
    <h3>Tests Chosen:</h3>
    <br>
    <div>
            <%--<ul class="columns3">
                <g:each in="${name}" var="fileName">
                    <g:checkBox value="${false}" name="${ 'fileName'}"/> ${fileName.replaceFirst(~/\.[^\.]+$/, '')}<br>
                </g:each> 
            </ul>
            --%>

            <g:each in="${values}" var="tests">
                <ul>
                    ${'tests'} <br>
                </ul>
            </g:each> 

            <br>
            <br>
        </div>
    </div>  
</body>
</html>

当我通过Chrome检查绑定时,我会获得表单数据的详细信息:

._DS_Store:
login._sh:
login.sh:on
Submit:Submit

我有点迷失在我的错误上。 有人可以帮我详细解释一下呈现复选框列表的正确方法,以及如何正确呈现所选复选框的列表。

我还是傻瓜。但我觉得这是一个非常强大而丰富的工具,可以做很多事情。

谢谢!

ironmantis7x

0 个答案:

没有答案