grails - 从其父级访问grails的动态包含 View 的zkui composer实例

标签 grails zk

我真的可以在这里使用一些帮助。场景是,我将根据用户交互动态地在Webapp中包含 View 。而且主要的问题是我需要访问包含的 View 编辑器的当前实例。

当用户做出一些选择并加载了一个 subview 时,用户可以在该 subview 中输入值,然后我需要将这些值收集到主 View 中。

一些代码片段以某种方式显示了我要完成的工作:(仅必要的部分)

grails-app/views/mainview/main.gsp
    ...
    <z:div id="mainContent"></z:div>
    ...

grails-app/views/mainview/templates/one.gsp
    <z:window apply="org.package.composers.OneComposer">
        ...
    </z:window>

grails-app/views/mainview/templates/two.gsp
    <z:window apply="org.package.composers.TwoComposer">
        ...
    </z:window>

grails-app/composers/org/packages/composers/MainComposer.groovy
    Div mainContent
    Composer currentSubComposer = null
    ...
    void setSubContent(String templateURI){
        mainContent.children.clear()
        mainContent << { include(src: templateURI) }
        currentSubComposer = /* HOW TO GET THE COMPOSER INSTANCE ? */
    }
    ...

我知道如果您在主 View 中“静态地”包含一个 subview
而不用动态使用include,那么您可以从
parent,如以下代码片段所示:
grails-app/views/common/_subview.gsp
    <z:window id="subview" apply="org.package.composers.SubviewComposer">

grails-app/views/mainview/main.gsp
    ...
    <z:div id="mainContent">
        <g:render template="/common/subview" />
    </z:div>
    ...

grails-app/composers/org/packages/composers/MainComposer.groovy
    Window subview
    Composer c = (Composer)subview.getAttribute("subview#composer")

但是我无法做到这一点,因为一切都是动态的。我需要能够做
同样的事情。

因此,要分解基本问题:
  • 我有一个主要的 Composer
  • 在主 Composer 中,我包括一个gsp文件( subview )
  • subview 有自己的 Composer

  • 如何从主编辑器访问 subview 编辑器实例?

    任何帮助表示赞赏!

    最佳答案

    如果有其他人感兴趣,我将使用grails session 发布自己的解决方案。也许还有其他方法可以解决这个问题,但是可以解决这个问题:

    我在主编辑器中创建了一个回调/注册方法:

    public void registerChildComposer(Composer c){
        currentChildComposer = c
    }
    

    并且在将 subview 包含在主编辑器中之前:
    session["parentComposerInstance"] = this
    

    在 subview 编辑器的doAfterCompose中:
    Composer parentComposer = session["parentComposerInstance"]
    parentComposer.registerChildComposer(this)
    

    瞧,在这种类似于“握手”的模式之后,我得到了所要查找的 subview 作曲者的句柄。

    关于grails - 从其父级访问grails的动态包含 View 的zkui composer实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28480526/

    相关文章:

    unit-testing - 用多部分请求测试Grails Controller

    mysql - 非主 Grails 的重复条目问题

    Java:如何从静态嵌套类引用外部类的非静态字段?

    java - 使用 javascript 和 zk

    java - ZK Combobox onSelect 事件

    grails - 网址映射和文件扩展名

    grails - Groovy Grails工具套件安装

    java - 将外部 JAR 添加到 Grails 4.0 应用程序

    Java 对象引用冗余

    java - 如何将索引 "i"处的项目设置为zk列表框中的选定项目