codecamp

Clojure 应用程序

Clojure有一些有用的库,它们能够创建桌面和基于Web的应用程序。 让我们来讨论它们中的每一个。

S.No.方法和说明
Desktop – See-sawSee-saw是一个可用于创建桌面应用程序的库。
Desktop – Changing the Value of Text可以使用“config!”选项更改窗口中内容的值。 在下面的示例中配置! 选项用于将窗口内容更改为新值“Good Bye”。
Desktop – Displaying a Modal Dialog Box可以使用跷跷板类的警报方法显示模态对话框。该方法采用文本值,需要在模态对话框中显示。
Desktop – Displaying Buttons按钮可以在按钮类的帮助下显示。
Desktop – Displaying Labels可以在标签类的帮助下显示标签。
Desktop – Displaying Text Fields文本字段可以在文本类的帮助下显示。

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应用程序时,默认情况下,应用程序将作为localhost: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函数一样简单。 (GET“/ Tutorial”[]“这是一个关于Clojure的教程”)

如果浏览到位置http:// localhost:3000 / Tutorial,您将收到以下输出。

本地主机

Clojure 并发编程
Clojure 自动化测试
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Clojure Useful Resources

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }