2016-12-14 4 views
0

Ich rufe einen Int-Wert aus einer Datenbank auf, um die Anzahl der Sterne zu bestimmen, die in meinem HTML-Code mit Thymelefleund Spring Boot angezeigt werden sollen, aber die Verwendung von $ {# numbers.sequence (1, obj.stars)} nicht scheinen zu arbeiten.Thymeleaf: Wie benutzt man # numbers.sequence() mit einem variablen Limit?

das ist mein html-thymeleaf Code:

<tr th:each="obj : ${allObjs}" class="pointer" th:onclick="'javascript:openobj(\'' + ${obj.id} + '\');'"> 
    <td class="text-center" th:text="${obj.id}"></td> 
    <td class="text-center" th:text="${obj.code}"></td> 
    <td class="text-center" th:text="${obj.name}"></td> 
    <td class="text-center" th:text="${obj.contract}"></td> 
    <td class="text-center" th:text="${obj.difficulty}"></td> 
    <td class="text-center" th:text="${obj.priority}"></td> 
    <td class="text-center"> 
     <!--this is the line I can't get to work :(--> 
     <span class="fa fa-star-o" th:each="star:${#numbers.sequence(1,obj.stars)}"></span> 
    </td> 
    <td class="text-center" th:text="${obj.state}"></td> 
    <td class="text-center" th:text="${obj.percent}"></td> 
    <td class="text-center" th:text="${obj.term}"></td> 
    <td class="text-center" th:text="${obj.version}"></td> 
    <td class="text-center" th:text="${obj.price}"></td> 
</tr> 

und mein Controller

@GetMapping("/Obj") 
public ModelAndView index() { 
     ModelAndView view = new ModelAndView("/Obj/index"); 
     view.addObject("title", "Obj"); 
     List<Obj> allObjs = ObjService.findAll(); 
     view.addObject("allObjs", allObjs); 
     return view; 
} 
+1

Was ist der Fehler, den Sie bekommen? Dieser Thymelcode ist korrekt (nur getestet). Hast du die View-Source verifiziert und sichergestellt, dass es nichts mit deinem CSS ist? – Metroids

+0

der Fehler ist dies: Es gab einen unerwarteten Fehler (Typ = Interner Serverfehler, Status = 500). Ausnahme, die SpringEL-Ausdruck auswertet: "# numbers.sequence (1, obj.stars)" (/ Obj/index) –

+0

wird obj.stars zu einer Ganzzahl aufgelöst? – Metroids

Antwort

3

Nun, ich weiß, es ist seltsam, Ihre eigene Frage zu beantworten, aber dank Michael Petch, die es getestet, Ich stellte fest, dass das Problem in der Sequenz lag. Es wurde ausgehend von 1, wenn ich Werte von 0 in obj.stars hatte so die Sequenz nicht mit einem Schritt von 1.

Ändern es zu

<span class="fa fa-star-o" th:each="star:${#numbers.sequence(0,obj.stars)}"></span> 

Das Problem erstellt werden konnte.

Verwandte Themen