2015-11-17 12 views
8

Hier mein Code ist in Ich Iterieren:Thymeleaf mit Pfadvariablen th: href

 <tr th:each="category : ${categories}"> 
     <td th:text="${category.idCategory}"></td> 
     <td th:text="${category.name}"></td> 
     <td> 
      <a th:href="@{'/category/edit/' + ${category.id}}">view</a> 
     </td> 
     </tr> 

Die URL verweist er auf angeblich /category/edit/<id of the category>

sein Er sagt es nicht den Ausdruck nicht analysieren:

 Exception evaluating SpringEL expression: "category.id" (category-list:21) 
+1

Sind Sie sicher, dass 'id' eine Eigenschaft eines Kategorieobjekts ist? Oder ist "idCategory" semantisch anders? –

+0

Was unterscheidet IDKategorie und ID? – codeaholicguy

+0

Haben Sie den Rest des Stack-Trace? – Andrew

Antwort

2

Ihr Code sieht syntaktisch korrekt aus, aber ich denke, Ihre Eigenschaft existiert nicht, um die URL zu erstellen.

Ich habe es gerade getestet und funktioniert gut für mich.

Versuchen category.idCategory statt category.id verwenden, zum Beispiel ...

<tr th:each="category : ${categories}"> 
    <td th:text="${category.idCategory}"></td> 
    <td th:text="${category.name}"></td> 
    <td> 
     <a th:href="@{'/category/edit/' + ${category.idCategory}}">view</a> 
    </td> 
    </tr> 
14

Hallo Ich denke, Ihr Problem

<a th:href="@{'/category/edit/' + ${category.id}}">view</a> 

Sie verwenden war category.id eine Art Fehler aber in Ihrem Code ist idCategory als Eddie

sagte

Dies würde für Sie arbeiten

<a th:href="@{'/category/edit/' + ${category.idCategory}}">view</a> 
+0

Das hat mir sehr geholfen, danke! –

0

Ich glaube, Sie dies versuchen:

<a th:href="${'/category/edit/' + {category.id}}">view</a> 

Oder wenn Sie "idCategory" haben dies:

<a th:href="${'/category/edit/' + {category.idCategory}}">view</a> 
1

Ein sauberer und einfacher Weg, um dieses

<a href="somepage.html" th:href="@{|/my/url/${variable}|}">A Link</a> 
zu tun

Ich fand diese Lösung in Thymeleaf Documentation auf "4.8 Literal Substitutionen".

Verwandte Themen