【问题标题】:PlayFramework render multiply views for a one html pagePlay Framework 为一个 html 页面呈现多个视图
【发布时间】:2015-07-24 09:00:24
【问题描述】:

我想使用 Play Framework 生成一个 HTML 页面。对于这个页面,我想使用两个视图模板。每个单独生成/渲染,并粘合成一个。

我要求这个特殊的功能,因为我有很多视图我想在不同的组合中重复使用。我想避免将它们全部粘贴到一个模板中,并使用 if 语句来生成正确的视图。

这些视图彼此不相关,而且它们太大(每个大约 1000 行)无法全部放在一个文件中,所以我决定将它们拆分。

我知道我可以将一种观点注入另一种观点。这是我在许多情况下所做的(例如,我将currentView.scala.html 注入mainManuView.scala.html),但在这种特殊情况下,它并不是一个真正的选择。

【问题讨论】:

    标签: java scala templates view playframework-2.2


    【解决方案1】:

    您可以使用render(...).body 获取每个视图的 HTML 内容并将它们连接在一起。

    val partOne = views.html.partOne.render(...).body
    val partTwo = views.html.partTwo.render(...).body
    Ok(partOne + partTwo)    
    

    【讨论】:

      【解决方案2】:

      我稍后自己想出的另一种方法是从其他视图调用带有参数的视图作为普通方法。

      示例视图:

      @(header: String, variable1: String, variable2: String, sharedVariable: String)
      @MainManuView(header) {
          <div>
              @views.html.partOneView(variable1, sharedVariable)
          </div>
          <div>
              @views.html.partTwoView(variable2, sharedVariable)
          </div>
      
      }
      

      【讨论】:

        猜你喜欢
        • 2016-10-16
        • 1970-01-01
        • 2014-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多