Groovy 服务器页面,正在创建 table
Groovy server page, creating a table
我的域有两个字段,例如
Class test{
static constraints {
testno(nullable:true)
opt(nullable:false, blank:false)
}
Double testno
String opt
}
opt
有 'test'、'try' 和 'final' 等选项值。
现在我需要使用上述信息在 .gsp 文件中创建一个 table,这样
----------------------------------
Test Try Final
-------------------------------------
TestNo
-------------------------------------
每个 opt
的值在下面的行中显示为 testNo。
我不知道如何从这里开始。我尝试创建一个 table 这样的:
```<%
def column=[
['field':'Test'],
['field': 'Try'],
['field':'Final']
]
%>```
但是,如何在 table 中添加行?
此外,鉴于
,我如何在不同的 gsp table 中使用 table
class Result(){ test(nullable:true) hasMany=[test:Test]}
我希望它在 result.gsp
中呈现 table.gsp
您需要将所有测试发送到控制器中的视图:
def showTests() {
// your controller code
[tests: Test.findAll()]
}
然后,在您的视图文件中使用 gsp 标签呈现数据(例如 showTests.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>
这只是解决您问题的一个非常简单的方法。
将其用作子资源
如果您的测试包含在其他资源(如结果)中,您可以通过两种方式访问它们。
如果您将整个报告发送到您的视图,您可以使用:
// 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]
}
我的域有两个字段,例如
Class test{
static constraints {
testno(nullable:true)
opt(nullable:false, blank:false)
}
Double testno
String opt
}
opt
有 'test'、'try' 和 'final' 等选项值。
现在我需要使用上述信息在 .gsp 文件中创建一个 table,这样
----------------------------------
Test Try Final
-------------------------------------
TestNo
-------------------------------------
每个 opt
的值在下面的行中显示为 testNo。
我不知道如何从这里开始。我尝试创建一个 table 这样的:
```<%
def column=[
['field':'Test'],
['field': 'Try'],
['field':'Final']
]
%>```
但是,如何在 table 中添加行? 此外,鉴于
,我如何在不同的 gsp table 中使用 tableclass Result(){ test(nullable:true) hasMany=[test:Test]}
我希望它在 result.gsp
中呈现 table.gsp您需要将所有测试发送到控制器中的视图:
def showTests() {
// your controller code
[tests: Test.findAll()]
}
然后,在您的视图文件中使用 gsp 标签呈现数据(例如 showTests.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>
这只是解决您问题的一个非常简单的方法。
将其用作子资源
如果您的测试包含在其他资源(如结果)中,您可以通过两种方式访问它们。
如果您将整个报告发送到您的视图,您可以使用:
// 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]
}