2017-09-01 3 views
1

Ich hoffe, jemand kann mir bei meinem Problem mit Thymeleaf helfen.Thymeleaf Verkettung Vorverarbeitung:

Der Fall ist, dass ich Preprocessing mit thymeleaf tun muss, der erste tut es richtig, aber innerhalb dieser ersten Vorverarbeitung muss ich ein anderes Feld aus dem Modell, aber wenn ich das Feld preprocessinf innerhalb einer anderen Vorverarbeitung gibt es gibt mir eine Art Fehler

kann nicht als Ausdruck analysiert: "$ {Regeln ["

Wenn ich dies tun, es funktioniert gut

rules[__${row.index}__].propertiesValues[] 

Failure einzufügen die andere Vorverarbeitung

rules[__${row.index}__].propertiesValues[__${rules[__${row.index}__].bookingRuleDescriptor.propertyDescriptors[__${iter.index}__].name}__] 

Ich hoffe, Sie können mir helfen.

Vielen Dank !!

Antwort

0

Es gibt nur einen Vorverarbeitungspass. Sie erhalten diesen Fehler wegen der nicht übereinstimmenden __. Zum Beispiel versucht das erste Mal, es zu Vorprozess:

propertiesValues[__${rules[__${row.index}__] 

Der Ausdruck sie zu bewerten versucht, ist __${rules[__, die thymeleaf Ausdruck nicht gültig ist.

Die Optionen, die Sie haben, sind:

1) Wenn dieser Ausdruck nicht in einem th verwendet wird: Feld, sollten Sie nicht sowieso Vorverarbeitung tun. Sie können einfach verwenden:

${rules[row.index].propertiesValues[rules[row.index].bookingRuleDescriptor.propertyDescriptors[iter.index].name]} 

2) Wenn Sie diese verwenden, in einem th: Feld, Sie haben th zu verwenden: mit einigen Ihrer Ausdrücke, bevor die Hand zu bewerten. Etwas wie:

<th:block th:with="i=${row.index}, j=${rules[row.index].bookingRuleDescriptor.propertyDescriptors[iter.index].name}"> 
    <input type="text" th:field="*{rules[__${i}__].propertiesValues['__${j}__']}" /> 
</th:block> 
+0

Vielen Dank! @Metroids, die zweite Lösung die ich implementiert habe und alles ist perfekt! :) Es ist unbekannt, wie man in thymeleaf Variablen erstellt und zuweist. Danke für deine unschätzbare Hilfe. – H3ct0r