JSRUN 用代码说话

应用程序

编辑教程

应用程序

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加载,因此如果浏览到此位置,您将收到以下输出。

Clojure的应用

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,您将收到以下输出。

本地主机


JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟