0

我正在创建自己的 MarkupSubstitutionElementProcessor:

public class PaginationElementProcessor extends AbstractMarkupSubstitutionElementProcessor {

    ...

    @Override
    protected List<Node> getMarkupSubstitutes(Arguments arguments, Element element) {
        FragmentAndTarget fragmentAndTarget = new FragmentAndTarget("pagination", WholeFragmentSpec.INSTANCE);
        List<Node> nodes = fragmentAndTarget.extractFragment(arguments.getConfiguration(), arguments, arguments.getTemplateRepository());
        return nodes;
    }

}

我的 pagination.html 看起来像这样:

<p th:text="${page}">1</p>

如何在我的 ElementProcessor 中设置一个新变量,以便它可以在我的模板中使用?

4

1 回答 1

0

在定义将扩展 AbstractMarkupSubstitutionElementProcessor 的新处理器时,覆盖 processElement 方法:

@Override protected ProcessorResult processElement(Arguments arguments, Element element) {
    final Map<String,Object> localVariables = new HashMap<String,Object>();
    ...
    return ProcessorResult.setLocalVariablesAndProcessTextNodes(localVariables, true);
}

我不确定在您的情况下是否会调用 processElement,但如果是,那应该可以让您访问模板中的 hashmap 字符串。

于 2013-09-24T14:51:27.900 回答