【问题标题】:Passing information to another GSP将信息传递给另一个 GSP
【发布时间】:2023-03-07 01:57:01
【问题描述】:

我一直在试图弄清楚如何将值从以前的 gsp 页面 list.gsp 传递到我的另一个 gsp 页面 confirm.gsp。我正在尝试将所有值从list.gsp 传递到confirm.gsp,并使用与list.gsp 完全相同的样式,只是将所有内容作为基于文本的文本而不是下拉菜单,以及我稍后将传递的其他信息。这是我将值传递给confirm.gsp的代码:

    forward(action: actionName, params: params)

我正在使用forward 将这些值传递给控制器​​内部的另一个特定处理函数,并根据某些事件通过参数actionName 将其发送到confirm.gsp。现在,当我传递其中的值时,它只会显示一个空白的白页,但我知道这些值正在被传递,因为我在该页面的处理函数中看到了它们。有没有更好的方法来做到这一点,还是我错过了一些东西来完成这项工作?

编辑:这是将这些参数转发到我在控制器中的其他功能的控制器操作:

    if(testDBCheckArray != null){
        actionName = "confirm"
    }

这是处理数据的另一个函数:

  def confirm = {
    def term_id = params.term_id
    println("This works: " + params)
    }  

【问题讨论】:

  • 您需要向我们展示处理初始请求的控制器操作,然后将该请求转发到您的 confirm.gsp。
  • 你去吧,这就是我处理它并发送参数的东西。

标签: grails parameter-passing gsp


【解决方案1】:

您可以在同一行使用render(view:"confirm"),而不是从控制器执行forward。您在 params 地图中的数据将在 confirm.gsp 页面中提供。

【讨论】:

  • 那仍然只显示一个空白页。我的confirm.gsp 目前没有样式或任何代码,所以它不应该干扰任何东西。
  • 您应该在您的confirm.gsp 页面中编写一些代码。如果您想在confirm.gsp 中重用list.gsp 中的部分gsp 代码,请将其设为模板并使用 标签进行渲染。
  • 您也可以将标志作为参数传递给 标签以在“下拉菜单”和“文本字段”之间切换。
【解决方案2】:

redirect怎么样:

redirect(action: "actionName", params: params)

或者使用chain:

chain(action: "actionName", model: [book: shawshankRedemption])

如果您要发送更复杂的数据、命令对象等,这将非常有用。

【讨论】:

    猜你喜欢
    • 2019-05-31
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多