Intereting Posts
Кодирование запроса почтальона Ошибки Kotlin и EasyMock Сравнение списков сопоставимых данных в Котлине Почему строка интерполяции Kotlin объединяет строки в Java? Kotlin Date.daysПосле использования другого возвращаемого значения с теми же аргументами Как установитьOnNavigationItemListener в BottomNavigationView в android с помощью Kotlin? Могут ли члены данных Kotlin инициализироваться в java с помощью kotlin default getter и setter? Есть ли чистый способ использования методов расширения Groovy в Котлине? Kotlin получает тип как строку Котлинская последовательность «пропускает» первые N записей Почему моя установка RxJava блокирует мой поток пользовательского интерфейса? Работа с обратным вызовом BluetoothAdapter.startLeScan Формат Строка Котлина с несколькими вхождениями jmethodID был NULL для метода с Kotlin Как разрешить неоднозначность перегрузки в ссылках на методы? Каким был бы базовый сценарий Gradle Kotlin для проекта Jot Kotlin?

Spring Boot ThymeLeaf и Kotlin – значение флажка не передается контроллеру?

Я пытаюсь обслуживать HTML-страницу с помощью Spring Thymeleaf и Kotlin. Я хочу, чтобы он передавал все значения на странице HTML, которые я выбираю, когда я нажимаю «Отправить», а затем сохраняю все материалы в списке ордеров.

class Order(val nameForTheOrder: String, val items: Map<String, BigDecimal>, val totalCost: BigDecimal) 

контроллер:

 @Controller class OrderController { @Autowired lateinit var orderService: OrderService @RequestMapping("/orderHistory") fun listOfOrders(model: Model) : String { model.addAttribute("orderHistory", orderService.getOrders()) return "orderHistory" } @RequestMapping("/order/{nameForTheOrder}") fun findOrder(@PathVariable("nameForTheOrder") orderId: String, model: Model) : String { model.addAttribute("order", orderService.findOrderbyId(orderId)) return "order" } @RequestMapping(value="/order", method = arrayOf(RequestMethod.POST)) fun addNewOrder(createOrderForm: CreateOrderForm, model: Model) : String { orderService.createOrder(Order( nameForTheOrder = createOrderForm.nameForTheOrder!!, items = createOrderForm.items!!, totalCost = createOrderForm.totalCost!!)) return "redirect:/order/" + createOrderForm.nameForTheOrder } @RequestMapping(value="/order") fun createOrderPage(model: Model) : String { model.addAttribute("orderForm", CreateOrderForm()) return "new-order-form" } } 

index.html:

 <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head lang="en"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> </head> <body> <div> <form th:object="${orderForm}" th:action="@{/order}" method="post"> Name:<input type="text" th:field="*{nameForTheOrder}"/><br/> Items:<input type="text" th:field="*{items}"/><br/> Total Cost:<input type="text" th:field="*{totalCost}"/><br/> <button type="submit">Submit</button> </form> </div> </body> </html> 

orderHistory.html:

 <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head lang="en"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> </head> <body> <div th:if="${not #lists.isEmpty(orderHistory)}"> <h2>Current Orders</h2> <table> <tr> <th>Name for the Order</th> <th>Items</th> </tr> <tr th:each="orderHistory : ${orderHistory}"> <td th:text="${orderHistory.nameForTheOrder}"></td> <td th:text="${o.items.get(key)}"></td> <td th:text="${orderHistory.totalCost}"></td> </tr> </table> </div> </body> </html> 

order.html:

 <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head lang="en"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> </head> <body> <div th:if="${order != null}"> <h2>Order Details</h2> <table> <tr> <td>Name for the Order: </td> <td th:text="${order.nameForTheOrder}"></td> </tr> <tr> <td>Items: </td> <td th:text="${order.items}"></td> </tr> <tr> <td>Total Cost: </td> <td th:text="${order.totalCost}"></td> </tr> </table> </div> <div th:if="${order == null}"> <h2>Hmmm... Looks like that order doesn't exist.</h2> </div> </body> </html> 

Когда я запускаю сервер и загружаю веб-страницу localhost: 8086 / order и отправляю запрос, я получаю: Sun Dec 10 20:10:16 CST 2017 Появилась непредвиденная ошибка (type = Bad Request, status = 400). Ошибка проверки для объекта = 'createOrderForm'. Количество ошибок: 1

Как я могу сопоставить значения с помощью флажка на странице HTML и убедиться, что эти значения будут помещены в мой объект Order?

Solutions Collecting From Web of "Spring Boot ThymeLeaf и Kotlin – значение флажка не передается контроллеру?"