我遇到了以下问题:
我的 Grails (2.2.0) 应用程序具有以下 URL 映射:
"/api/clientQuote/$labcode/$cliCode/$quoCode"(controller: "clientQuote") {
action = [GET: "get"]
}
让我们假设以下值:
$labcode = BRMIN
$cliCode = CL-000236
$quoCode = QT-000965/0-0
由于 $quoCode 有一个斜杠字符,因此有必要将其替换为 %2F。这样,一个可能的 URL 可能是:
http://myapp.com:9090/CCLASService/api/clientQuote/BRMIN/CL-000236/QT-000965%2F0-0
当我将此 URL 放入任何浏览器时,返回时显示为空白屏幕。这很奇怪,因为请求甚至没有到达我的 Grails Controller 。
对于另一方,如果我更改 url:
一切正常,我收到了对我的请求的正确 XML 响应。
问题是:为什么当我使用带有编码字符的特定 URL 映射时,返回的是空白屏幕?
最佳答案
URL 映射可以使用 $paramName**
来允许在特定参数内使用斜杠 - 这通常用于 CMS 之类的东西,您希望将整个虚拟路径层次结构映射到单个 Controller ,但它也可能对您有用。
"/api/clientQuote/$labcode/$cliCode/$quoCode**"(controller: "clientQuote") {
action = [GET: "get"]
}
这将允许 http://myapp.com:9090/CCLASService/api/clientQuote/BRMIN/CL-000236/QT-000965/0-0
即使斜杠没有转义。
关于url - Grails URL 映射和 URL 中的斜杠字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23960388/