2016-07-26 4 views
0

Ich versuche, Werte in einem vergleichen Eingabe zu aktivieren die Auswahl selected="selected" von einigen Elementen.Spring Boot mit Thymoleaf # lists.contains() vergleicht nicht gleiche Werte

I`m mit: Frühlings-Boot 1.4.0 und Thymeleaf 2.1.5

Wenn ich überprüfen, ob es Werte gibt, ich bin sicher, dass es in einer Liste ist, immer wieder false:

<p th:each="modulo : ${usuario.papeis}" th:text="${modulo.nome} + ' - ' + ${meusPapeis} + ' | ' + ${meusPapeis.contains(modulo.nome)}"></p> 

Out:

ROLE_DASHBOARD - [ROLE_DASHBOARD, ROLE_USUARIO, ROLE_CONFIGURACOES] | false


Der Versuch, einen anderen Ansatz:

<p th:each="modulo : ${usuario.papeis}" th:text="${modulo.nome} + ' - ' + ${meusPapeis} + ' | ' + ${#lists.contains(meusPapeis, modulo.nome)}"></p> 

Out:

ROLE_DASHBOARD - [ROLE_DASHBOARD, ROLE_USUARIO, ROLE_CONFIGURACOES] | false


Wirklich, ich weiß nicht, was das Problem ist, denn wenn ich die Rückkehr einer Zeichenkette verwenden ist true:

<p th:each="modulo : ${usuario.papeis}" th:text="${modulo.nome} + ' - ' + ${meusPapeis} + ' | ' + ${#lists.contains(meusPapeis, 'ROLE_DASHBOARD')}"></p> 

Out:

ROLE_DASHBOARD - [ROLE_DASHBOARD, ROLE_USUARIO, ROLE_CONFIGURACOES] | true

Gibt es eine Möglichkeit, diese Art von Vergleich zu erreichen, Variablenwert verwenden?

Antwort

3

Sie sollten die Ausdrücke #strings verwenden, um mit der Methode toString(stringToConvert) in eine Zeichenfolge zu konvertieren. Enum ist immer verwirrend zu verwenden. Folgen Sie der documentation.

versuchen #strings.toString(modulo.nome). Es sollte funktionieren.

+0

Funktioniert wie ein Charme! –

Verwandte Themen