programing

경로 변수를 사용하여 th:href에 대한 타임 리프

testmans 2023. 3. 6. 20:49
반응형

경로 변수를 사용하여 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>

그것이 가리키는 URL은/category/edit/<id of the category>단, 다음 식을 해석할 수 없다고 합니다.

SpringEL 식 평가 예외: "category.id" (category-list:21)

Tymeleaf 설명서에 따르면 파라미터를 추가하는 올바른 방법은 다음과 같습니다.

<a th:href="@{/category/edit/{id}(id=${category.idCategory})}">view</a>

내 생각에 너의 문제는 오타였던 것 같아.

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

사용하고 있습니다.category.id에디가 이미 지적한 바와 같이, 당신의 암호는 입니다.

이 방법은 다음과 같습니다.

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

보다 깔끔하고 쉬운 방법

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

저는 이 솔루션을 "4.8 리터럴 치환"에 대한 Tymeleaf 문서에서 찾았습니다.

코드는 구문적으로는 맞는 것 같지만 URL을 만들 수 있는 속성이 존재하지 않는 것 같습니다.

방금 시험해 봤는데, 잘 되더라고요.

사용해보십시오.category.idCategory대신category.id예를 들어...

  <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>

오브젝트 목록을 살펴보고 각 행이 링크인 표에서 행으로 표시하려고 했습니다.이건 나한테 효과가 있었어.도움이 됐으면 좋겠다.

// CUSTOMER_LIST is a model attribute
<table>
    <th:block th:each="customer : ${CUSTOMER_LIST}">
        <tr>
            <td><a th:href="@{'/main?id=' + ${customer.id}}" th:text="${customer.fullName}" /></td>
        </tr>
    </th:block>
</table>

이거 한번 써보세요.

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

또는 "id Category"가 있는 경우:

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

다음과 같이 사용할 수 있습니다.

  1. 내 테이블은 마치..

    <table>
       <thead>
        <tr>
            <th>Details</th>
        </tr>
    </thead>
    <tbody>
        <tr th:each="user: ${staffList}">
            <td><a th:href="@{'/details-view/'+ ${user.userId}}">Details</a></td>
        </tr>
     </tbody>
    </table>
    
  2. 여기 제 컨트롤러가 있습니다.

    @GetMapping(value = "/details-view/{userId}")
    public String details(@PathVariable String userId) { 
    
        Logger.getLogger(getClass().getName()).info("userId-->" + userId);
    
     return "user-details";
    }
    

"List"는 백엔드에서 가져와 반복기를 사용하여 테이블에 표시하는 개체입니다.

"minAmount" , "MaxAmount"는 객체 변수 "mrr"은 값을 얻기 위한 단순한 임시 변수이며 데이터를 얻기 위해 mrr을 반복합니다.

<table class="table table-hover">
<tbody>
<tr th:each="mrr,iterStat : ${list}">
        <td th:text="${mrr.id}"></td>
        <td th:text="${mrr.minAmount}"></td>
        <td th:text="${mrr.maxAmount}"></td>
</tr>
</tbody>
</table>

다음을 사용할 수 있습니다.

html:

 <html xmlns:th="http://www.thymeleaf.org">

<a th:href="@{'/category/'+ ${item.idCategory}}">View</i></a>

컨트롤러:@PathVariable String parentId

model foreach(모달의 var item) 루프 목록에 있는 경우 이 방법은 매우 쉽습니다.

<th:href="/category/edit/@item.idCategory>View</a>"

또는

<th:href="/category/edit/@item.idCategory">View</a>

${yourVariable}을(를) Exampe에 사용할 수도 있습니다.<th:href="/category/edit/__${yourVariable}__">View</a>

언급URL : https://stackoverflow.com/questions/33753975/thymeleaf-using-path-variables-to-thhref

반응형