【问题标题】:Grails, controller is not called but the view updatesGrails,控制器未被调用,但视图更新
【发布时间】:2017-03-25 11:25:48
【问题描述】:

我有一个非常奇怪的问题,即更新了视图但从未调用过控制器。控制器不是脚手架,视图/动作名称是“列表”。

控制器的头部是这样的:

@Secured(['ROLE_ADMIN','ROLE_USER','ROLE_SALES', 'ROLE_SUPPLIER'])
class Orders_and_StoreController {
    def springSecurityService
    def list(Integer max) { 
        System.out.println("Controller List <<<<<<<<")
        def orders = Orders.list()

我已经放了一个 System.out.println 来查看它是否被调用,但打印输出从未显示。 我可以单击将我引导到另一个视图的链接,我可以在其中进行更新并返回到原始视图。但是控制器没有被调用。 如果我在控制器中进行更改,可能只是更改注释,然后更新控制器,则调用控制器。它会继续被调用(应该如此),直到您重新启动程序。

我不明白这里发生了什么,如果不先调用控制器,页面怎么会显示出来?

我的网址如下所示: http://localhost:8080/orders_and_Store/list 如果我在我的计算机上单击此处的链接,页面会显示,但不会调用控制器。 这是一个大问题,因为控制器对视图进行了大量过滤。

任何人有想法或提示可以帮助我解决这个问题?

【问题讨论】:

  • 我会先重命名你的控制器和 gsps 所在的目录,不要认为 Grails 会喜欢这个命名,坚持驼峰式
  • 做到了!谢谢!我仍然想知道到底发生了什么,我想如果命名错误,你应该得到一个找不到页面或类似的页面。但是这里一切都很好,只是没有进行过滤,以及在程序运行时更新控制器后它如何开始工作?

标签: grails model-view-controller gsp


【解决方案1】:

使用驼峰式命名您的控制器和 gsp 目录。

我不知道您遇到这种行为的确切原因,但我会冒险猜测它与下划线有关,这对某些 Grails 方面具有特殊含义。

在组合多个大写字母之前我遇到了问题,例如myLEDControllermyLED gsp 目录,通过分别更改为 myLedControllermyLed 解决。

【讨论】:

    猜你喜欢
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 2019-10-04
    相关资源
    最近更新 更多