Spring

thymeleaf는 옵션 값을 생성하지 않습니다.

기록만이살길 2021. 3. 20. 08:03
반응형

thymeleaf는 옵션 값을 생성하지 않습니다.

1. 질문(문제점):

이 thymeleaf 코드가 있습니다.

<form th:method="POST" th:action="@{/order/savedaddress}" th:object="${orderForm}">
    <label>
        Choose saved address:
        <select th:field="*{address_id}">
            <option value="">Choose address</option>
            <option th:each="address : ${savedAddress}"
                    th:value="${address.id}"
                    th:text="${address.id}"></option>
        </select>
    </label>

orderForm에는 내가 채우고 싶은 address_id 필드
가 있습니다. savedAddress는 선택 항목이있는 모든 주소의 List입니다
. 결과적으로이 html 테이블을 얻습니다. 이 HTML 형식의 모든 데이터는 올바르게 전송되지만 문제가 있습니다.


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Add new order</title>
</head>
<body>
    <form method="POST" action="/order/savedaddress">
    <label>
        Choose saved address:
        <select id="address_id" name="address_id">

2. 해결방안:

당신은 무엇이 잘못되고 있는지 명확하게 지정하지 않았지만 그 모양으로 address_id가 orderForm 객체에 바인딩 할 수 없다고 생각합니다. 이 줄이 코드를 엉망으로 만들고 있다고 생각합니다.

         <option value="">Choose address</option>

또한 옵션 태그 자체에서 for each 루프를 실행하고 있습니다. 또한 코드를 이렇게 변경하십시오.

        <td>Choose adress:</td>
        <select th:field="*{address_id}">
        <span th:each="address : ${savedAddress}">
               <option th:value="${address.id}"  th:text="${address.id}"></option></span>
    </select>

이것이 작동하는지 알려주십시오.

65676679
반응형