标签: twirl

如何在播放框架模板中逃避"@"?

如何逃避@ in play框架模板(视图和标签)?如果在play框架的任何视图中添加"@",它将由模板处理器自动处理.即使是电子邮件地址或推特帐户.

playframework playframework-2.0 twirl

14
推荐指数
1
解决办法
2461
查看次数

在代码中无法看到旋转模板(喷涂应用程序)

我有一些配置问题,我看不到.我已按照最新twirlREADME中提供的说明进行操作,但html根据编译器未定义包.

  1. 我已将sbt-twirl插件包含在project/plugins.sbt文件中

    addSbtPlugin("com.typesafe.sbt" % "sbt-twirl" % "1.0.3")
    
    Run Code Online (Sandbox Code Playgroud)
  2. project/Build.scala我启用了插件

     lazy val root  = Project(id = "proj", base = file("."))
       .enablePlugins(play.twirl.sbt.SbtTwirl)
       .settings(rootSettings: _*)
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我已经放置page.scala.htmlsrc/main/twirl子目录(直接或使用com/somethin/cool路径)

现在,如果我试图导入html包(或com.somethin.cool.html),编译器会抱怨它未定义.我可以使用'twirlCompile'命令编译模板,它们在target子目录中正确生成,但它们对主项目是不可见的.

注意:这不是 PlayFramework项目

  • 斯卡拉:2.10.4
  • sbt:0.13.6
  • 旋转:1.0.3

scala sbt spray twirl

13
推荐指数
1
解决办法
2633
查看次数

使用Twirl和Spring MVC

是否可以将Twirl与Spring MVC一起用作视图技术?我想用一些代替JSP的东西,Apache Tiles对我来说很麻烦.旋转视图技术为Play Framework看起来非常酷,类似于ASP.NET Razor.

https://www.playframework.com/documentation/2.3.x/JavaTemplates

我做了一个快速的谷歌搜索,但没有发现太多.

java spring spring-mvc playframework twirl

10
推荐指数
1
解决办法
667
查看次数

如何让IntelliJ识别Play Framework*.scala.xml模板

有没有人获得IntelliJ IDEA识别*.scala.xml旋转模板?HTML模板似乎很好地被IDE选中,似乎是唯一受支持的模板,但任何其他类型的模板都不会被拾取.

java scala intellij-idea playframework twirl

9
推荐指数
1
解决办法
682
查看次数

预处理sbt-twirl模板

我需要在我的sbt项目中预处理一些Twirl模板.是否可以在build.sbt中定义一个任务,该任务将 Twirl插件编译其模板之前运行?

scala sbt twirl

8
推荐指数
1
解决办法
226
查看次数

Scala播放模板vararg HtmlContent

我有一个通用模板play 2.6,我希望传递可变数量的HtmlContents.我已经定义了template这样的(包括我改变任何东西的隐含参数):

@(foo: String)(content: Html*)(implicit bar: Bar)
Run Code Online (Sandbox Code Playgroud)

在模板上,这个工程fine--我可以解剖contentfor和渲染它,因为我想要的.但是,我还没有找到一种从底层模板调用变量参数的简洁方法.

例如,我有一个名为"Baz"的视图:

@(something: String)(implicit bar: Bar)
Run Code Online (Sandbox Code Playgroud)

在其中,我尝试template使用多个Html参数调用.我尝试过以下方法:

@template("fooString"){{123},{abc}}
and
@template("fooString")({123}, {abc})
and
@template("fooString"){{123}, {abc}})
Run Code Online (Sandbox Code Playgroud)

和其他各种排列,但在一个封闭的括号内,它似乎将字面上的所有内容解释为HtmlContentvararg中的单个参数.

然而,这最终按照我的意图工作,传递了多个HtmlContents:

@template("fooString")(Html("123"), Html("abc"))
Run Code Online (Sandbox Code Playgroud)

这样可以工作,我可以使用三引号内插字符串作为一个大的Html块 - 但似乎应该有一个更简洁的方法来执行此操作,并且字符串插值是危险的,因为它不会执行html转义.

有没有办法使用{附带的语法执行此操作?我想更深入地了解基础层面上实际发生的事情,以及如何在括号中解析并生成HtmlContent.

html scala variadic-functions playframework twirl

8
推荐指数
1
解决办法
273
查看次数

有没有办法在Twirl模板的渲染输出中包含源位置?

Twirl生成的*.scala文件包含将生成的代码绑定到源模板中的行的信息.是否有选项可以在模板的渲染功能的输出中进一步包含此信息?

如果没有这样的选项,推荐的实现此功能的方法是什么?知道我找不到生成的*.scala模板文件的调试信息被消耗的地方......

twirl

6
推荐指数
0
解决办法
68
查看次数

在 Play 框架应用程序中使用 Vue.js

如果有人有使用Vue.js作为Play Framework应用程序前端的经验,我想知道推荐的方法。

我当前的设置是一个 Play 应用程序(在 Java 中),带有用于处理 REST 请求的模型、控制器和 DAO - 这实际上是我的后端。Now Play 还允许您使用Twirl模板库来创建可用作静态 HTML 的视图。然而,我发现 Twirl 语法不必要地复杂且难以为单页应用程序组合视图。我更喜欢使用像 Vue 这样的 UI 工作更精细的东西

我的研究显示了将 Vue 集成到 Play 的两种选择:

  1. 使用Webjars
    它是某种 Play 插件,可将JQuery等 JavaScript 库捆绑到.jar可由 Play 部署的文件中。坦率地说,我不明白这个过程,我不知道这将如何让我在.vue文件中写入我的视图。

  2. 使用与 Play 后端松散连接的单独 Vue 项目:
    这是我在发布此问题之前的当前展望。我想我可以使用vue-cliNPM创建一个标准的 Vue Webpack项目,然后我可以以 RESTful 方式调用 Play 后端 API。这样做的问题是单独部署后端和前端的额外复杂性。我更喜欢一个 Play 应用程序(项目文件夹)中的所有内容——后端和前端。

其中哪一个是要走的路?我也乐于接受新的建议。对于任何建议,请解释该方法的优点,最好提供一个最小的工作示例(Github 存储库就足够了)。

谢谢。

frontend playframework webjars vue.js twirl

6
推荐指数
1
解决办法
4014
查看次数

传递给 @Messages 的 Html 参数在 Play Framework 中被转义

我想将 HTML 文本作为参数传递给 Twirl 模板中的消息,但是当渲染模板时,HTML 会被转义。例如,如果我的messages文件有:

my.message=Click {0} to proceed
Run Code Online (Sandbox Code Playgroud)

我的template.scala.html

<p>@Messages("my.message", Html("<a href="/">here</a>"))</p>
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中打开页面时,该<a href="/"here</a>部分会被转义,因此我没有可点击的链接。有什么办法可以实现这一点吗?

playframework twirl

5
推荐指数
1
解决办法
901
查看次数

Scala 2.13:不推荐将显式数组值传递给 Scala varargs 方法

我正在迁移到 Scala 2.13。

args: (Symbol, String)*在 Play Twirl 模板中给了我这个警告:

不推荐将显式数组值传递给 Scala varargs 方法(自 2.13.0 起),并且会产生防御性副本;使用更高效的非复制 ArraySeq.unsafeWrapArray 或显式 toIndexedSeq 调用

这是整个模板:

@(action: play.api.mvc.Call, args: (Symbol, String)*)(body: => Html)
<form  method="@action.method"
  @toHtmlArgs(args.toMap)>
  @body
</form>
Run Code Online (Sandbox Code Playgroud)

该函数的调用方式如下:

@helper.formRelative(action = ..., Symbol("id") -> "assignForm", Symbol("class") -> "ui form") { ..body.. }
Run Code Online (Sandbox Code Playgroud)

由于我在很多地方都使用它,有没有办法在不更改签名的情况下解决这个问题?

我尝试了不同的事情,例如:

  • 添加toSeq@toHtmlArgs(args.toSeq.toMap)
  • 还删除了@toHtmlArgs(args.toMap)出现的警告。

scala playframework twirl

5
推荐指数
1
解决办法
1017
查看次数