gpt4 book ai didi

grails - Grails:如何将URL映射到自定义插件中的 Controller ?

转载 作者:行者123 更新时间:2023-12-02 15:12:11 26 4
gpt4 key购买 nike

我在一个名为TextController插件内有一个 Controller ,其 Action 名为index
然后,我在名为test-plugin.gsp调用应用程序内看到一个 View ,其中包含以下include标签:

<g:include controller="text" />

这很好。问题在于,插件的 Controller 实际上需要使用类似软件包的名称来标识,例如: com.foxbomb.fxportal3.components.text,我需要这样引用它。因此,我认为我们尝试为该插件建立URL映射,例如:
    "/components/com.foxbomb.fxportal3.components.text/" {
controller = "text"
action = "index"
}

我也不知道如何在调用应用程序中创建一个include来尝试调用该URL,例如(我知道您没有URL属性):
<g:include url="/components/com.foxbomb.fxportal3.components.text"/>

换句话说,我想通过其 映射来包含一个 Controller / Action ,而不是其 Controller / Action 名称

最佳答案

<g:include>不允许使用url属性,这让我感到惊讶,但是看the source of the <g:include> tag,应该可以很容易地在自己的taglib中实现此功能(未经测试):

import org.codehaus.groovy.grails.web.util.WebUtils

class IncludeTagLib {
def grailsUrlMappingsHolder

def includeUri = { attrs, body ->
def mapping = grailsUrlMappingsHolder.match(attrs.uri)
out << WebUtils.includeForUrlMappingInfo(request, response, mapping,
attrs.model ?: [:])?.content
}
}

您会在GSP中说 <g:includeUri uri="/components/com.foxbomb.fxportal3.components.text"/>

关于grails - Grails:如何将URL映射到自定义插件中的 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12912019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com