0

は使用していませんApache velocityが、現在のプロジェクトでは、このライブラリを使用してテンプレートにデータを入力しています。

Velocity?を使用して、テンプレート内のタグを置き換えることが可能かどうかお尋ねしたいと思います。

私はそのようなテンプレートを持っています:

<head>
    <link href="conf/templates/template_style.css" rel="stylesheet" type="text/css"/>
</head>
<p>
    <span class="mention" data-id="295" data-value="${AutumnExams}">
        <span contenteditable="false">${AutumnExams}</span>
    </span>
</p>

そしてそのようなコードを使用する:

private String applyDynamicContent(String templateHtmlData, List<DynamicContentPart> dynamicContentParts) throws ParseException {
   if (!dynamicContentParts.isEmpty()) {

       RuntimeServices rs = RuntimeSingleton.getRuntimeServices();
       SimpleNode sn = rs.parse(new StringReader(templateHtmlData), "Template body");
       Template template = new Template();
       template.setRuntimeServices(rs);
       template.setData(sn);
       template.initDocument();
       VelocityContext context = createVelocityContext(null, null);

       dynamicContentParts.forEach(dContent -> context.put(dContent.getPlaceholder(), dContent.getContent()));

       StringWriter writer = new StringWriter();
       template.merge(context, writer);
       return writer.toString();
   }
   return templateHtmlData;
}

${AutumnExams}プレースホルダーのみを置き換えます。しかし、たとえばに基づいて SPAN 全体を置き換える可能性はありますか?data-value="${AutumnExams}"

で 1 時間の経験がvelocity libあるので、コードの助けをいただければ幸いです。

4

2 に答える 2