簡體   English   中英

如何在play(2.3)框架內的Java控制器代碼中從String變量構造Html對象

[英]How do I construct an Html object from a String variable in Java controller code within the play (2.3) framework

剛剛開始使用play框架,我正在嘗試理解java應用程序代碼和基於scala的模板框架之間的交互(注意:到目前為止我對Scala一無所知,除了它是另一個編譯為JVM上的字節碼的語言,以及您的Scala和Java類可以交互的語言。

我有一個test1.scala.html模板,如下所示:

@(title: String)(content: Html)

<!DOCTYPE html>

<html>
    <head>
        <title>@title</title>
    </head>
    <body>
        @content
    </body> </html>

從頂行可以看出,模板需要一個String和一個Html參數,但我無法弄清楚如何從Java調用者代碼構造Html參數!

我在我的控制器類中嘗試了一些變體:

return ok(test1.render("My Title","It <em>finally</em> works!"));

顯然這很失敗,因為第二個參數是String而不是Html,所以我的參數不匹配。 (有一個運行時錯誤: actual argument String cannot be converted to Html by method invocation conversion - 這是有道理的,但我希望這里有一些魔法。:))

所以我嘗試從String中創建一些Html,認為這可能是包中的某個幫助類,這可能“只是工作”:

return ok(test1.render("My Title",new Html("It <em>finally</em> works!")));

這不會編譯,因為javac找不到Html類。 好,可以。 掃描播放文檔,似乎有一個play.api.templates.Html類(用Scala編寫)帶有一個帶String的構造函數,所以我嘗試完整的包限定名:

return ok(test1.render("My Title",new play.api.templates.Html("It <em>finally</em> works!")));

這也不會編譯:我在包play.api.templates中找不到'Html'的符號。

那么:什么是讓我將我的String(其中包含HTML片段)轉換為我可以傳遞到模板的HTML對象的神奇醬油?

播放模板已經被分解到Twirl模塊中,如Play 2.3遷移指南中所述

play.api.templates.Html現在是play.twirl.api.Html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM