2016-04-10 3 views
3

私はKotlinにとって非常に新しいJava開発者です。私は言語が大好きですが、私はそれを使ってWebアプリケーションを簡単に処理できるのが好きです。問題は、ブラウザでKotlin HTMLビルダーファイルを実行する方法を理解できないため、kotlinで基本的なWebページのスケルトンを作成できることです。私はIDEでそれを出力することができますが、それは私のブラウザで実行するようになっているように見えるのは愚かです。これは愚かな質問かもしれないし、私は何か非常に明白な行方不明ですが、私は答えをオンラインで見つけることができないようです。ブラウザでKotlin HTML Builderを実行する

私はIntelli-J IDEを使用していないことに注意してください。大好きですが、ただコットリンでウェブ開発をするために鼻を払う余裕はありません。 Eclipseを使用していました。

ありがとうございます。

+0

Kotlin HTMLビルダーAFAIKは、DSLを作成するためにKotlinでビルダーを使用する方法の単なる例です。どのような実際のユースケースでも使用するようアドバイスしません。あなたの好みのWebフレームワーク(Spring-MVC、プレーンサーブレット/ JSPなど)を使って、JavaではなくKotlinでクラスを書くだけです。 –

+0

それはたくさん説明します。ハハ。助けてくれてありがとう。 –

+0

InteliJ Community Editionの問題点は何ですか?それは無料でOOS https://www.jetbrains.com/idea/download/ – voddan

答えて

3

Kotlin html builder kotlinx.htmlを使用する場合、ブラウザのHTMLを取得するには、ビルドする必要があります。

"Kotlin builder files"のようなものはありません。これらの構造は単純なKotlinコードなので、(サーバー?)コードベースの中にを書き込んでをコンパイルし、次にを呼び出すと、HTML応答を生成するためにが呼び出されます。これは、例えば、Sparkのような(通常のJavaの)ルータフレームワークが必要であることを意味します。

要約すると、HTMLビルダーはHTML文字列を生成する方法であるため、HTMLを他の場所に発送する方法は含まれていません。

1

Kotlinx自体には、結果をユーザーのブラウザに送信するユーティリティはありません。これは、HTML文字列を作成できる通常のKotlinコードです。それをユーザーに送信する方法が必要です。幾つかある。

最も単純なものは、普通の古いJava servletsです。誰もまだそれらを使用していますか?

@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は今日非常に一般的です。しかし、この@Controllerはあまりにもバニラ春に動作します:

@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の場合、あなたは自分の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" 
        } 
       } 
      } 
     } 
    }) 
} 

私は、依存関係の管理を残してアプリケーションを実行し、アクセスするための正しいURLを推測しているあなたにページを生成しました。上記の例のすべては、このHTMLになります:あなたはまた、DropwizardまたはNinjaフレームワークを試すことができます

<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> 

また、Kara(特にKotlin用に設計されたWebフレームワーク)を見ることができますが、まだアルファステージです。

0

私はここで何かが見つからないかもしれませんが、kotlinx.html javascriptバージョンを使用すると、結果のjsコードはDOMビルダーとして機能します...必要な場合はさらに追加できます。

関連する問題