【问题标题】:gsp parameter passing from controller从控制器传递的 gsp 参数
【发布时间】:2011-01-07 09:43:03
【问题描述】:

如何通过不是域类实例的控制器将参数传递给 groovy 服务器页面?

【问题讨论】:

标签: grails groovy gsp


【解决方案1】:

您将参数放入返回给您的 GSP 的模型对象映射中,例如:

def index = { def hobbies = ["basketball", "photography"] 
render(view: "index", model: [name: "Maricel", hobbies: hobbies]) }

然后您可以通过您在模型映射中使用的名称访问这些值,例如:

My name is ${name} and my hobbies are:
<ul>
<g:each in="${hobbies}" var="hobby">
<li>${hobby}</li>
</g:each>
</ul>

应该显示以下内容:

My name is Maricel and my hobbies are:

 - basketball
 - photography

【讨论】:

    【解决方案2】:

    最清晰的方法可能是从您的控制器操作中返回一个地图:

    ...
    def myAction = {
        [myGreeting: "Hello there, squire!"]
    }
    ...
    

    现在您可以在 GSP 页面中访问该参数(默认为 myAction.gsp):

    ...
    <p><%= myGreeting %></p>
    ...
    

    更多细节在这里: http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.1.3%20Models%20and%20Views

    【讨论】:

      【解决方案3】:

      你可以这样做:

      在控制器中:

      def myaction = {
          String name = "Tony Danza"
          [name: name]
      }
      

      在 gsp 页面中,您可以像这样查看名称:

      <body>
          My name is ${name}
      </body>
      

      【讨论】:

        【解决方案4】:

        您在与 gsp 同名的控制器的闭包中返回参数。

        【讨论】:

          猜你喜欢
          • 2016-02-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多