Alb*_*ici 6 parameters url grails
鉴于URL
http://localhost:9000/Estrategia/book/index?format=excel&extension=xls
Run Code Online (Sandbox Code Playgroud)
我想获取格式值(在这种情况下是excel)
在控制器中:
`println params.format
但params.format
总是空的,任何想法?
Grails 2.3.5
import static org.springframework.http.HttpStatus.*
import grails.transaction.Transactional
@Transactional(readOnly = true)
class BookController {
static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]
def exportService // Export service provided by Export plugin
def grailsApplication //inject GrailsApplication
def index(Integer max) {
params.max = Math.min(max ?: 10, 100)
if(!params.max)
params.max = 10
println params?.format
[ bookInstanceList: Book.list( params ) ]
}
}
Run Code Online (Sandbox Code Playgroud)
你是约会优于配置的最幸运的受害者之一.;)
带有键的条目format
被添加到params
默认url映射所引用的,它表示预期的响应类型(通常,是否xml/json)也将用于内容协商,这意味着,例如,如果您使用:
http://localhost:9000/Estrategia/book/index.xml
//params -- [action:index, format:xml, controller:book]
http://localhost:9000/Estrategia/book/index.json
//params -- [action:index, format:json, controller:book]
http://localhost:9000/Estrategia/book/index.json?format=excel&extension=xls
//params -- [action:index, format:json, extension:xls, controller:book]
http://localhost:9000/Estrategia/book/index?format=excel&extension=xls
//params -- [action:index, format:null, extension:xls, controller:book]
Run Code Online (Sandbox Code Playgroud)
format
由您要求的内容类型填充.这也意味着,带有名称的请求参数format
将被覆盖并将丢失.
您可以将请求参数重命名为其他内容,format
然后它应该在控制器中可用,就像param.blah
请求参数一样blah=excel
.
要么
修改url映射并删除可选((.$format)?
如果不需要):
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1977 次 |
最近记录: |