【发布时间】:2016-01-07 10:54:53
【问题描述】:
我有一个非常复杂的表格。我需要按照提交的顺序从该表单中获取帖子参数。该应用程序是在 ring/compojure 中创建的。
我可以从响铃请求中获得的所有参数都经过预处理(分组、排序..)
如何获取原始参数列表(最好解析为键/值向量或其他列表)?
【问题讨论】:
我有一个非常复杂的表格。我需要按照提交的顺序从该表单中获取帖子参数。该应用程序是在 ring/compojure 中创建的。
我可以从响铃请求中获得的所有参数都经过预处理(分组、排序..)
如何获取原始参数列表(最好解析为键/值向量或其他列表)?
【问题讨论】:
您能否提供有关您的项目的更多信息。您使用的是什么 HTTP 服务器(http-kit、clj-http、aleph),您在项目中应用了哪些中间件?
所有基于参数的东西实际上并不是环规范的一部分,而是由中间件处理(请参阅https://github.com/ring-clojure/ring/wiki/Parameters),因此这在很大程度上取决于您当前正在提取的位。
我不知道当前存在的任何你想要的环中间件,它们似乎都解析参数列表并将其放入哈希图中,如果存在多个具有相同键名的参数,它们会生成值在 hashmap 中的项目向量。
说了这么多,我不得不问。 为什么您需要按特定顺序使用它们?
【讨论】:
您最好的选择是创建自己的中间件。使用 wrap-param 中间件作为指导。你只需要在https://github.com/mmcgrana/ring/blob/master/ring-core/src/ring/middleware/params.clj#L29 做你的定制工作
也就是说,我也对期望参数按特定顺序保持警惕,因为它会使客户端-服务器通信变得脆弱。
【讨论】: