Groovy服务器页面,创建一个表



我的域有两个字段,例如

Class test{
static constraints {
testno(nullable:true)
opt(nullable:false, blank:false)
}
Double testno
String opt
}

opt具有选项值,如"test"、"try"one_answers"final"。

现在我需要使用上面的信息在.gsp文件中创建一个表,这样

----------------------------------
Test        Try       Final
-------------------------------------
TestNo   
-------------------------------------

每个opt的值在下面的行中显示为testNo。

我不知道如何从这里开始。我尝试创建一个表,这样:

```<%
def column=[
['field':'Test'],
['field': 'Try'],
['field':'Final']
]
%>```

但是,如何在表中添加行?此外,在给定的情况下,我如何在不同的gsp表中使用该表

class Result(){ test(nullable:true) hasMany=[test:Test]}

我希望它在result.gsp 中呈现表格.gsp

您需要将所有测试发送到控制器中的视图:

def showTests() {
// your controller code
[tests: Test.findAll()]
}

然后,使用视图文件(例如showTests.gsp(中的gsp标记渲染数据:

<html>
<body>
<table>
<tr>
<th></th>
<th>Test</th>
<th>Try</th>
<th>Final</th>
</tr>

<g:each in="${tests}" var="t">
<tr>
<td>${t.testno}</td>
<td>${t.opt == "test" ? "x" : ""}</td>
<td>${t.opt == "try" ? "x" : ""}</td>
<td>${t.opt == "final" ? "x" : ""}</td>
</tr>
</g:each>
</table>
</body>
</html>

这只是解决你问题的一个非常简单的方法。

将其用作子资源

如果您的测试包含在另一个资源(如Result(中,您可以通过两种方式访问它们。

如果您将整个报告发送到您的视图,您可以使用:

// controller
def showResult() {
// your controller code
[result: Result.get(/*id...*/)]
}
// showResult.gsp view, just change this line
<g:each in="${result.tests}" var="t">

否则,如果您只想从上面的主要示例向现有视图发送测试:

// controller
def showTests() {
// your controller code
def result = Result.get(/*your id*/)
[tests: result.tests]
}

相关内容

  • 没有找到相关文章

最新更新