我是grails的新手,现在我陷入了困境。
我已经创建了我的应用程序,它运行良好。
现在,在执行了一些查询以检索值之后,我想填充启动页面上的一些字段(在我的例子中称为Report.gsp)。
在启动时,我在引导程序中执行了一个查询,但我不知道如何在那之后将它们带到我的gsp页面来填充字段。
这是引导程序代码:
class BootStrap {
def dataSource
def grailsApplication
def init = { servletContext ->
initData()
}
def destroy = {
}
def initData(){
println("***** in initDATA")
def sql = new Sql(dataSource)
def results
results = sql.execute("select * from customer where id = 42;")
}}
Grails使用MVC设计模式。要将值传递给视图(report.gsp
),您需要检索控制器内的数据,并将其传递给视图。Bootstrap.groovy
文件用于执行应用程序启动时需要执行的操作,例如种子设定数据,而不是填充视图。
如果这是您的主页,您应该创建一个新的控制器和操作,并将根URL映射到该控制器操作,然后在该控制器操作中执行数据查找。
例如,在grails-app/controllers
:中创建HomeController.groovy
class HomeController {
def index() {
// Lookup your data
def customer = Customer.get(params.id)
// Pass the results to the view
[customer: customer]
}
}
然后,您可以在grails-app/conf/UrlMappings.groovy
:中将根URL映射到此操作
"/"(controller: "home", action: "index")
然后应在grails-app/controllerName/actionName.gsp
创建您的视图。在我们的情况下,这将是grails-app/home/index.gsp
:
<ul>
<li>Customer ID: ${customer?.id}</li>
<li>Customer Name: ${customer?.name}</li>
<li>Customer Age: ${customer?.age}</li>
<!-- Whatever fields you'd like to display -->
</ul>
现在,当有人导航到应用程序中的根URL时,HomeController#索引操作将执行查找,并将数据传递到要显示的视图。