You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala Play框架map遍历时引入模板文件被输出为纯文本问题

Scala Play Twirl模板调用子视图输出纯文本问题修复

问题原因

Twirl是Play框架默认的模板引擎,对动态代码块有固定解析规则:你当前代码中包裹map遍历逻辑的大括号未被引擎识别为动态代码块起始,块内的@cards(profile)不会触发模板解析,因此被直接作为普通文本输出。

可行写法

优先选择第一种官方推荐写法,可规避绝大多数Twirl块解析异常:

  • 用Twirl原生@for语法实现遍历
    这是模板标准遍历写法,引擎可自动识别块内的HTML标签、子视图调用,不需要额外标记边界,可读性更强:
@for(profile <- profilesvm.profiles) {
  <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">
    @cards(profile)
  </div>
}
  • 保留map写法的实现
    如果必须用map实现遍历,需要用@{}显式包裹整个动态逻辑块,明确告知Twirl引擎这部分代码需要解析执行,块内内容会被正常渲染:
@{
  profilesvm.profiles.map { profile =>
    <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">
      @cards(profile)
    </div>
  }
}

前置检查

确保当前模板顶部已经正确引入cards子视图,否则语法正确也会触发编译错误。

内容的提问来源于stack exchange,提问作者user1899829

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 23:45:45