首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能将java.lang.String转换为clojure.lang.IFn

不能将java.lang.String转换为clojure.lang.IFn
EN

Stack Overflow用户
提问于 2015-07-29 13:43:30
回答 1查看 4.1K关注 0票数 3

我只是试图设置名为test的cookie的值。

代码语言:javascript
复制
example: http://www.luminusweb.net/docs/sessions_cookies.md

我的代码:

代码语言:javascript
复制
    (GET "/new-location" req (new-location req)
     (-> "cookie set" response (update-in [:cookies "test" :value] "Alice")))

错误:

代码语言:javascript
复制
java.lang.String cannot be cast to clojure.lang.IFn

如果您想看到新的位置函数:

代码语言:javascript
复制
(defn new-location [resp]
 (render "{{resp}}" {:resp resp}))

Resp产出:

代码语言:javascript
复制
{:ssl-client-cert nil, :cookies {"test" {:value "5Zn5Z6shY7vJFH3dYyhmDzfB/MmLkZVShKxxrNXop7QgubGBLBGQMzsdPX3c9kJkc/H3oFns/Y3+yU5RNXmBCp+Hs5ha0mEMhiRcGw04Z4w=--BZCShBKs13BCNkVGtyKAtuOMqPCH+sFl3t39qnM6Eks="}}, :remote-addr "127.0.0.1", :params {}, :flash nil, :handler-type :undertow, :route-params {}, :headers {"host" "localhost:3000", "user-agent" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.15 Safari/537.36", "cookie" "test=5Zn5Z6shY7vJFH3dYyhmDzfB%2FMmLkZVShKxxrNXop7QgubGBLBGQMzsdPX3c9kJkc%2FH3oFns%2FY3%2ByU5RNXmBCp%2BHs5ha0mEMhiRcGw04Z4w%3D--BZCShBKs13BCNkVGtyKAtuOMqPCH%2BsFl3t39qnM6Eks%3D", "connection" "keep-alive", "upgrade-insecure-requests" "1", "accept" "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-language" "en-GB,en-US;q=0.8,en;q=0.6", "accept-encoding" "gzip, deflate, sdch", "dnt" "1", "cache-control" "max-age=0"}, :server-port 3000, :content-length -1, :form-params {}, :compojure/route [:get "/new-location"], :session/key "5Zn5Z6shY7vJFH3dYyhmDzfB/MmLkZVShKxxrNXop7QgubGBLBGQMzsdPX3c9kJkc/H3oFns/Y3+yU5RNXmBCp+Hs5ha0mEMhiRcGw04Z4w=--BZCShBKs13BCNkVGtyKAtuOMqPCH+sFl3t39qnM6Eks=", :server-exchange #object[io.undertow.server.HttpServerExchange 0x2035c15c "HttpServerExchange{ GET /new-location}"], :query-params {}, :content-type nil, :path-info "/new-location", :character-encoding nil, :context "", :uri "/new-location", :server-name "localhost", :query-string "", :body #object[io.undertow.io.UndertowInputStream 0x2ef23b2a "io.undertow.io.UndertowInputStream@2ef23b2a"], :multipart-params {}, :scheme :http, :request-method :get, :session {:ring.middleware.session-timeout/idle-timeout 1438182648}}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-29 14:30:59

最新情况使用一个函数来提供新的值,而不是新的值- do。

代码语言:javascript
复制
(update-in [:cookies "test" :value] (constantly "Alice"))

而不是。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31702233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档