在Thymeleaf方言中设置变量

时间:2013-08-31 09:19:33

标签: java thymeleaf

我正在创建自己的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中设置一个新变量,以便可以在我的模板中使用?

1 个答案:

答案 0 :(得分: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字符串。