Ejecutando Kotlin HTML Builder en el browser

Soy un desarrollador de Java que es muy nuevo para Kotlin. Aunque me encanta el lenguaje, y me gusta cuán fácilmente se pueden hacer las aplicaciones web con él. El problema es que no puedo encontrar la manera de ejecutar los files del constructor HTML de Kotlin en el browser, para poder crear un esqueleto básico de la página web en kotlin. Puedo producirlo en el IDE, pero es tonto lo difícil que parece ser que se ejecute en mi browser. Esta puede ser una pregunta tonta y me falta algo muy obvio, pero parece que no puedo encontrar la respuesta en línea.

Tenga en count que no estoy usando el Intelli-J IDE. Me encantaría, pero no puedo permitirme pagar la nariz solo para hacer desarrollo web en Kotlin. He estado usando Eclipse

Gracias por adelantado.

Cuando utiliza Kotlin html builders kotlinx.html o cualquier otro de ese tipo, debe, bueno, comstackrlos para get HTML para el browser.

No existen los "files de construcción de Kotlin". Esos constructos son simples códigos de Kotlin, por lo que los escribe dentro de su base de código (server?), Comstackrlos y luego invocarlos para generar respuestas en HTML. Esto también significa que necesita un marco de enrutador (Java normal), como Spark por ejemplo.

En resumen, los html-builders son una forma de generar cadenas de HTML, por lo que no incluyen una forma de enviar el HTML a otra parte.

Kotlinx no tiene utilidades para enviar el resultado al browser del usuario. Es solo un código de Kotlin normal que puede crear una cadena de HTML. Necesitas una forma de enviársela al usuario. Hay algunos.

El más simple es simple viejo servlets de Java . ¿Alguien todavía los usa?

 @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 es muy popular hoy en día. Sin embargo, este @Controller también funcionará en vainilla Spring:

 @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 es uno de los muchos microarmas jóvenes de Java. Tenga en count que, en el caso de SparkJava, puede simplemente escribir routes dentro de su main :

 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" } } } } }) } 

Dejo la administración de la dependencia, ejecuto la aplicación y adivino las URL correctas para acceder a las páginas generadas. Todos los ejemplos anteriores darán como resultado este HTML:

 <html> <head title="Hello from kotlinx.html + Servlets"></head> <body> <h1>Kotlin is awesome</h1> <p>Read more about <a href="http://kotlinlang.org" target="_blank">it</a></p> </body> </html> 

También puedes probar los frameworks Dropwizard o Ninja .

Además, puedes echar un vistazo a Kara , un framework web especialmente diseñado para Kotlin, pero todavía está en fase alfa.

Me puede faltar algo aquí, pero si se usa kotlinx.html versión de JavaScript, el código js resultante funciona como un generador de DOM … puede agregar más si esto es lo que se requiere.

  • Error al intentar inyectar ViewModelProvider en Activity with Dagger2 and Kotlin
  • Anotación de Kotlin + Dagger2 @Named en el uso del método del proveedor del module
  • Kotlin - Henetworkinga de Java Class que implementa Parcelable
  • Validación Datos Clase Parámetros Kotlin
  • Error al ejecutar un servlet de Apache Tomcat escrito en Kotlin
  • Kotlin - Constructor secundario de class con parámetro diferente
  • El depurador Android Studio no funciona cuando se usa la compatibilidad con C ++
  • ¿Cuál es la forma oficial / correcta de crear la entidad y el file Dao al usar kotlin?
  • Combustible TimeOut Connection
  • cómo convertir json array a object json
  • String.intern () devuelve diferentes valores en un controller JDBC