控制器类
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;它上面有对象,就像我的视图无法从控制器中读取数据
答案 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]
}