G:每个都没有显示任何东西

时间:2016-08-11 14:04:40

标签: grails model-view-controller gorm

控制器类

class EntidadController {
    def index(){
        def entidades = Entidad.list()
        [entidades:entidades]
        render(view:"index")
        for (x in entidades)
        {
            print(x.nombreEntidad)
        }
    }
}

域类

    class Entidad {

        String nombreEntidad
        int porcentaje
        static hasOne = [kiosko: Kiosko]
        static belongsTo = [adminCreador: Administrador,entidadSuperior: Entidad]
        static hasMany = [adminEntidad: Administrador, entidadesInferiores: Entidad]
        static constraints = {
            kiosko nullable:true        
            nombreEntidad nullable : false
            adminCreador nullable : true 
            adminEntidad nullable : true 
            entidadSuperior nullable : true 
            entidadesInferiores nullable : true
        }



}

在gsp中查看

<!DOCTYPE html>
<html>
<head>
<title>test</title>


</head>

<body>
<p>test</p>
<div controller="entidadController">
<g:each in="${entidades}"  var="x">
                <tr>
                        <td>${x.id}</td>

                </tr>
                </g:each>
</div>
</body>

</html>

我认为代码很好,但我不知道为什么没有在g上显示任何内容:每个标签,香港专业教育学院尝试使用gsp页面中的静态数组并且g每个都工作,我在控制台和阵列打印&#34; entidades &#34;它上面有对象,就像我的视图无法从控制器中读取数据

3 个答案:

答案 0 :(得分:0)

也许是这样的渲染语句:

render(view:'index', model:[entidades: entidades])

答案 1 :(得分:0)

如果您不需要在视图中进行分页和排序,可以在gsp上执行此操作

...
<body>
<p>test</p>
<div controller="entidadController">
<g:each in="${Entidad.list()}"  var="x">
            <tr>
                    <td>${x.id}</td>

            </tr>
            </g:each>
</div>
</body>
...

答案 2 :(得分:0)

问题在于:

def index(){
    ...
    [entidades:entidades]
    render(view:"index")
    ...
}

您没有向视图发送entidades。这可以通过这种方式纠正(render docs):

def index(){
    ...
    render(view:"index", model:[entidades:entidades])
    ...
}

此外,如果您的视图和您的操作共享相同的名称,则不需要显式使用render方法,而是将map作为操作的最后一行(这是grails约定)。像这样:

def index(){
    ...
    [entidades:entidades]
}