gpt4 book ai didi

java - 如何使用映射器将自定义查询字符串附加到 grails 资源?

转载 作者:行者123 更新时间:2023-12-01 05:24:57 25 4
gpt4 key购买 nike

我想创建一个 Grails 资源映射器,将查询字符串附加到actualUrl。到目前为止,所有的尝试都失败了——但也许我处理问题的方式是错误的。示例代码如下;

import org.grails.plugin.resource.mapper.MapperPhase
import org.apache.commons.logging.LogFactory

class GlobalizationResourceMapper {

def log = LogFactory.getLog(this.class)
def phase = MapperPhase.RENAMING
def operation = "globalizationquerystring"
def priority = -1

static defaultExcludes = ['**/*.png', '**/*.gif', '**/*.jpg', '**/*.jpeg', '**/*.gz', '**/*.zip']
static defaultIncludes = ['**/*.js','**/*.gsp']

/**
* Cache the resource based on current language in use. Do this by appending a query string on the resource URL indicating language.
*/
def map(resource, config) {
def query = [l:'en_US']
resource.actualUrl = resource.actualUrl + '?' + query.collect { it }.join('&')
if (log.debugEnabled) log.debug "Modified URL: ${resource.actualUrl}"
log.info "Modified URL: ${resource.actualUrl}"
}
}

实际的 URL 会进行适当的更改,但使用它请求的任何资源最终都会出现重定向循环和 404。

最佳答案

您可以将参数附加到 *Resources.groovy 中的 URL,即在声明资源的位置(而不是在映射器中)使用:

resource url: '/js/foo.js', wrapper: { baseUrl ->          
def query = [l:'en_US']
baseUrl + '?' + query.collect { it }.join('&')
}

关于java - 如何使用映射器将自定义查询字符串附加到 grails 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9815349/

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