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

Pebble模板HTML标签可见问题:如何正确逐行展示ownerList列表

解决Pebble模板输出HTML转义标签的问题

问题分析

你遇到的问题核心原因有两点:

  • 模板中直接使用了HTML转义字符<p>和</p>,Pebble会将这些字符作为普通文本输出,而非解析为HTML标签;
  • Java代码传入上下文的变量名为ownerList,但模板里遍历的是ownersList,变量名不匹配(若这是笔误,需修正才能正常执行循环)。

解决方案

根据你期望的纯文本逐行输出需求,按以下步骤修改:

1. 修正模板文件(OwnerList.peb)

移除多余的转义标签,直接循环输出目标字段,让每个内容单独占一行:

{% for owner in ownerList %}
{{ owner.dateTime }}
{% endfor %}

2. 确认Java代码的变量名一致性

确保Java代码中传入的变量名和模板中遍历的变量名完全一致(你当前Java代码里的ownerList是正确的,模板里需要对应改成ownerList,而非ownersList):

PebbleEngine engine = new PebbleEngine.Builder().build();
PebbleTemplate compiledTemplate = engine.getTemplate("OwnerList.peb");

Map<String, Object> context = new HashMap<>();
context.put("ownerList", ownerList); // 变量名与模板保持一致

Writer writer = new StringWriter();
compiledTemplate.evaluate(writer, context);

String output = writer.toString();

额外说明(若需输出可解析的HTML标签)

如果你的需求是输出能被浏览器解析的HTML标签而非纯文本,需将模板中的转义字符替换为实际HTML标签,并使用raw过滤器关闭Pebble的自动转义:

{% for owner in ownerList %}
<p>{{ owner.dateTime|raw }}</p>
{% endfor %}

此方案会生成HTML内容,浏览器渲染时会显示换行的文本,不会直接显示<p>标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 04:25:12