为什么 compojure-app 和 hiccup 不能导入函数 hiccup.form/form-to?

Why can’t compojure-app and hiccup import function hiccup.form/form-to?

我用"lein new compojure-app"创建了一个web项目,hiccup已经导入project.clj:

:dependencies [[org.clojure/clojure "1.8.0"]
             [compojure "1.5.2"]
             [hiccup "1.0.5"]

我可以看到 jar 文件

我将 intellij 用于 ide,在 home.clj:

(ns ansible.routes.home
(:require [compojure.core :refer :all]
        [ansible.views.layout :as layout]
        [hiccup.form :refer :all]
        ))

但是写的时候:

(form-to [ :post "/"]

intellij 告诉我 form-to can't be resolved,如果我使用这个:

[hiccup.form :as hf]

然后写

(hf/

intellij 告诉我可以使用 function:group,input-filed,make-id,make-name,with-group,but no form-to,but form-to is a function in package hiccup.form

我该如何解决这个问题?

通常,将 :require:refer :all 一起使用被认为是错误的形式,因为它可能会在您不注意的情况下隐藏某些功能。

检查您在 home.clj 中需要的任何其他名称空间是否已经具有名为 form-to 的函数。尝试使用类似的东西:

(ns myapp.routes.home
  (:require [compojure.core :as cc :refer [defroutes GET]]
            [myapp.views.layout :as layout]
            [hiccup.form :as hf]))

(defn home []
  (layout/common [:h1 "Hello World!"]))

(defroutes home-routes
  (GET "/" [] (home)))