【问题标题】:How to call an action without generating a view in grails [closed]如何在不在 grails 中生成视图的情况下调用动作 [关闭]
【发布时间】:2012-04-15 02:37:09
【问题描述】:

如何在没有 grails 尝试生成视图的情况下调用我的一个控制器类中的方法?

【问题讨论】:

  • 你从哪里打电话,你想做什么
  • 控制器中的动作总是需要向用户发送一些东西。但它不一定是 GSP 页面或 HTML,您可以自己构建任何类型的响应。正如 nate 建议的那样,我们需要知道您想要实现什么才能帮助您找到解决方案。
  • 这个问题完全有效。这与 LinkedIn 对 Scala 所做的事情和撰写回复的脉络一致:engineering.linkedin.com/play/…

标签: grails view controller gsp


【解决方案1】:

您可以redirect 到另一个控制器操作。

class PuppyController {

   def woof() {
     redirect(action:'bark')
   }

   def bark(){
     response.write "Moo"
   }

}

在某些时候,您应该写入响应或重定向到与视图对应的方法/闭包,以便用户可以接收输出。

如果您尝试调用的方法在另一个控制器上,则您可能做错了。

如果,例如,我有一个上传文件的控制器方法,以及另一种方法为该文件创建文件名作为我制定的一些约定的组合(比如时间戳+“漂亮文件”+用户名)另一个控制器,您应该将该控制器方法提升为 Service 并将其注入两个控制器。

【讨论】:

    【解决方案2】:
    class FooController {
    
      def fooAction() {
        render("Successful call to fooAction")
      }
    
    }
    

    【讨论】:

      【解决方案3】:

      基本上你可以创建一个控制器实例(通过'new'关键字)然后调用感兴趣的动作。 请提供有关您想做什么的更多详细信息,以便我可以给出更好的答案...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-11
        • 2018-01-07
        相关资源
        最近更新 更多