参数 - snakevash/ring-clojure-doc-cn GitHub Wiki
URL参数编码是浏览器传参数的主要途径。
因为Ring是一个底层接口, 所有你只有使用正确的中间件才能支持参数解析:
(use 'ring.middleware.params)
(def app
(wrap-params your-handler))
wrap-params 中简件支持URL参数解析。
默认不支持文件上传, wrap-multipart-params中间件提供这个功能。 查看File Uploads获得更多信息。
wrap-params函数接受一组可选项映射。 推荐的键为:
:encoding- 参数编码,默认UTF-8。
应用处理器时, 参数中间件增加三个新建:
:query-params- 查询字符串映射:form-params- 表单提交映射:params- 所有参数映射
例如:
{:http-method :get
:uri "/search"
:query-string "q=clojure"}
wrap-params中间件会修改请求如下:
{:http-method :get
:uri "/search"
:query-string "q=clojure"
:query-params {"q" "clojure"}
:form-params {}
:params {"q" "clojure"}}
可能你只会用到:params键, 但是其他键可以用来帮助你辨别参数是表单传递还是url传递。
键是字符串, 参数也是字符串。
例如:
http://example.com/demo?x=hello
参数映射如下:
{"x" "hello"}
多参数示例:
http://example.com/demo?x=hello&x=world
参数映射:
{"x" ["hello", "world"]}