应用程序
Clojure有一些有用的库,它们能够创建桌面和基于Web的应用程序。让我们来讨论它们中的每一个。
序号 |
方法和说明 |
桌面-跷跷板 |
See-saw是一个可用于创建桌面应用程序的库。 |
桌面–更改文本的值 |
可以使用“ config!”选项更改窗口中内容的值。在下面的示例中配置!选项将将窗口内容更改为新值“再见”。 |
桌面–显示模态对话框 |
该方法采用文本值,需要在模态上方中显示。 |
桌面–显示按钮 |
按钮可以在按钮类的帮助下显示。 |
桌面–显示标签 |
可以在标签类的帮助下显示标签。 |
桌面–显示文本字段 |
文本文本可以在文本类的帮助下显示。 |
Web应用程序-简介
要在Clojure中创建Web应用程序,您需要使用Ring应用程序库,该应用程序库在以下链接中提供 https://github.com/ring-clojure/ring
您需要确保从网站下载必要的jar,并确保将其添加为Clojure应用程序的依赖关系。
Ring框架提供以下功能:
设置事情,因此http请求作为常规的Clojure HashMap进入您的Web应用程序,同样也是您可以返回作为HashMap的响应。
提供一个规范,描述那些请求和响应映射应该是某种子。
接入Web服务器(Jetty)启动,连接您的Web应用程序连接到它。
Ring框架可以自动启动Web服务器,并确保Clojure应用程序在此服务器上工作。然后还可以使用Compojure框架。这允许创建路线,现在是大多数现代Web应用程序的开发。
创建您的第一个Clojure应用程序 -以下示例显示如何在Clojure中创建第一个Web应用程序。
(ns my-webapp.handler
(:require [compojure.core :refer :all]
[compojure.route :as route]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
(GET "/" [] "Hello World")
(route/not-found "Not Found"))
(def app
(wrap-defaults app-routes site-defaults))
让我们来看看程序的以下方面
'defroutes'用于创建路由,如何对Web应用程序对不同路由的请求可以指向您的Clojure应用程序中的不同函数。
在上面的示例中,“ /”被称为替代路由,因此当您浏览到Web应用程序的基础时,串联“ Hello World”将被发送到Web浏览器。
如果用户命中任何无法由Clojure应用程序处理的URL,则可以显示字符串“未找到”。
当运行Clojure应用程序时,替代情况下,应用程序将作为本地主机:3000加载,因此如果浏览到此位置,您将收到以下输出。
Web应用程序-为您的Web应用程序添加更多路由
您还可以向您的Web应用程序添加更多路由。以下示例显示如何实现此。
(ns my-webapp.handler
(:require [compojure.core :refer :all]
[compojure.route :as route]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
(GET "/" [] "Hello World")
(GET "/Tutorial" [] "This is a tutorial on Clojure")
(route/not-found "Not Found"))
(def app
(wrap-defaults app-routes site-defaults))
(GET“ / Tutorial” []“这是一个关于Clojure的教程”)
如果浏览到位置http://本地主机:3000 / Tutorial,您将收到以下输出。