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