如何将多个参数从thymeleaf html传递到thymeleaf方言处理器

时间:2018-08-08 14:19:28

标签: java html jsp thymeleaf

我正在创建一个自定义的百里香字典。我需要知道如何将参数从thymleaf html片段传递给处理器。我能够实现一个参数,但是我需要知道我们将如何实现多个参数。 下面是我的百里香叶片段。

<th:block dialectPrefix:customDialect="${parameter}"> </th:block>

下面是我的处理器逻辑

protected void doProcess(final ITemplateContext context, final IProcessableElementTag tag,
final AttributeName attributeName, final String attributeValue,
final IElementTagStructureHandler structureHandler) {
  final IEngineConfiguration configuration = context.getConfiguration();
  final IStandardExpression categoryExpression = parser.parseExpression(context, someString);
  final IStandardExpressionParser parser = StandardExpressions.getExpressionParser(configuration);
  String fetchValue=categoryExpression.execute(context).toString()
   //I am able to get the value of parameter
}

如果我想像下面那样从百里香html中传递多个参数

<th:block dialectPrefix:customDialect="${parameter1}" "${parameter2} etc">  </th:block>

我可以像HTML中的','一样用"${parameter1,parameter2}"分开它,虽然效果很好,但是我需要在我的处理器[.java]级别进行拆分。如果有其他方法可以在html级别实现,对我有帮助

任何遇到过这种情况的人都可以阐明。

1 个答案:

答案 0 :(得分:0)

可以通过以下方式完成:

致电:

<th:block th:include="mailFragments::test('f1', 'f2', 'f3')"/>

片段:

 <th:block th:fragment="test(p1,p2,p3)">
    <element dialectPrefix:customDialect="|${p1},${p2},${p3}|">тест</element>
 </th:block>

并且:

 new AbstractAttributeTagProcessor(TemplateMode.HTML, PREFIX, null, false, NAME, true, 1000, true) {
    @Override
    protected void doProcess(final ITemplateContext context, final ProcessableElementTag tag, final AttributeName name, String href, final IElementTagStructureHandler structureHandler) {
            final IEngineConfiguration configuration = context.getConfiguration();
            final IStandardExpressionParser parser = StandardExpressions.getExpressionParser(configuration);
            final IStandardExpression categoryExpression = parser.parseExpression(context, value);
            String delimitedResult = categoryExpression.execute(context).toString();
            String[] params = delimitedResult.split(",");
            .....
    }

PS:有关自定义百里香标签的信息,请参见Say Hello! Extending Thymeleaf in 5 minutes