Running Kotlin HTML Builder in the Browser
我是Kotlin的Java开发人员。 虽然我喜欢这种语言,但是我喜欢用它完成Web应用程序的轻松程度。 问题是我无法弄清楚如何在浏览器中运行Kotlin HTML构建器文件,以便可以在kotlin中创建基本的网页框架。 我可以在IDE中输出它,但是要使其在我的浏览器中运行似乎很难。 这可能是一个愚蠢的问题,我遗漏了一些非常明显的内容,但似乎无法在线找到答案。
请记住,我没有使用Intelli-J IDE。 很乐意,但无力承担仅在Kotlin中进行Web开发的费用。 一直在使用Eclipse。
提前致谢。
当您使用Kotlin html构建器
没有" Kotlin构建器文件"之类的东西。这些构造是普通的Kotlin代码,因此您可以在(服务器?)代码库中编写它们,进行编译,然后调用它们以生成HTML响应。这也意味着您需要一个(普通的Java)路由器框架,例如
总结起来,html-builders是一种生成HTML字符串的方法,因此它们不包括将HTML运送到其他地方的方法。
Kotlinx本身没有任何实用程序可将结果发送到用户的浏览器。这只是可以创建HTML字符串的常规Kotlin代码。您需要一种将其发送给用户的方法。有一些。
最简单的是普通的旧Java servlet。有人还在用吗?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | @WebServlet(urlPatterns = arrayOf("/servlet"), loadOnStartup = 1) class KotlinxHtmlServlet : HttpServlet() { override fun doGet(request: HttpServletRequest?, response: HttpServletResponse?) { response!!.setContentType("text/html") response!!.writer.appendHTML(true).html { head { title ="Hello from kotlinx.html + Servlets" } body { h1 { +"Kotlin is awesome" } p { +"Read more about" a("http://kotlinlang.org") { target = ATarget.blank +"it" } } } } } } |
Spring Boot今天非常流行。但是,此
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | @Controller class KotlinxHtmlController { @ResponseBody @RequestMapping(path = arrayOf("controller"), method = arrayOf(RequestMethod.GET)) fun doGet(): String { return createHTML(true).html { head { title ="Hello from kotlinx.html + Servlets" } body { h1 { +"Kotlin is awesome" } p { +"Read more about" a("http://kotlinlang.org") { target = ATarget.blank +"it" } } } } } } |
SparkJava是众多年轻的Java微框架之一。请注意,在使用SparkJava的情况下,您只需在
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | fun main(args: Array<String>): Unit { get("spark", { request: Request, response: Response -> createHTML(true).html { head { title ="Hello from kotlinx.html + Servlets" } body { h1 { +"Kotlin is awesome" } p { +"Read more about" a("http://kotlinlang.org") { target = ATarget.blank +"it" } } } } }) } |
我要离开依赖关系管理,运行应用程序,并猜测正确的URL,以便您访问生成的页面。以上所有示例均将产生以下HTML:
1 2 3 4 5 6 7 8 9 | <html> <head title="Hello from kotlinx.html + Servlets"></head> <body> Kotlin is awesome <p> Read more about it </p> </body> </html> |
您也可以尝试Dropwizard或Ninja框架。
另外,您可以看一下Kara –一种专为Kotlin设计的Web框架–但它仍处于alpha阶段。
我在这里可能会遗漏一些东西,但是如果使用kotlinx.html javascript版本,则生成的js代码确实可以作为DOM构建器执行...如果需要的话,可以添加更多内容。