在启动Grails应用程序时填充页面上的字段



我是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#索引操作将执行查找,并将数据传递到要显示的视图。

相关内容

  • 没有找到相关文章

最新更新