Код Заказ
public class Order {
private String id;
private BigDecimal amount;
//get set constructor constructors
}
IndexController
@Controller
public class IndexController {
@GetMapping
public String index() {
return "index";
}
}
OrderController
@Controller
@RequestMapping("/orders")
public class OrderController {
private final OrderService orderService;
public OrderController(OrderService orderService) {
this.orderService = orderService;
}
@GetMapping
public Mono<String> list(Model model) {
var orders = orderService.orders();
model.addAttribute("orders", orders);
return Mono.just("orders/list");
}
}
OrderGenerator
public class OrderGenerator {
public Order generate() {
var amount = ThreadLocalRandom.current().nextDouble(1000.00);
return new Order(UUID.randomUUID().toString(), BigDecimal.valueOf(amount));
}
}
OrderService
@Service
public class OrderService {
private final Map<String, Order> orders = new ConcurrentHashMap<>(10);
@PostConstruct
public void init() {
var generator = new OrderGenerator();
for (int i = 0; i < 25; i++) {
var order = generator.generate();
orders.put(order.getId(), order);
}
}
public Mono<Order> findById(String id) {
return Mono.justOrEmpty(orders.get(id));
}
public Mono<Order> save(Mono<Order> order) {
return order.map(this::save);
}
private Order save(Order order) {
orders.put(order.getId(), order);
return order;
}
public Flux<Order> orders() {
return Flux.fromIterable(orders.values()).delayElements(Duration.ofMillis(128));
}
}
html
<body>
<h1>Orders</h1>
<table>
<thead>
<tr>
<th></th>
<th>Id</th>
<th>Amount</th>
</tr>
</thead>
<tbody>
<tr th:each="order : ${orders}">
<td th:text="${order.id}"></td>
<td th:text="${#numbers.formatCurrency(order.amount)}"
style="text-align: right"></td>
</tr>
</tbody>
</table>
</body>
ошибка
Произошла ошибка при разборе шаблона (template: "ресурс пути к классу [templates / orders / list.html]")
Исключениевычисление выражения SpringEL: "order.id" (шаблон: "orders / list" - строка 19, столбец 9)
EL1008E: Свойство или поле 'id' невозможно найти в объекте типа 'реактор.core.publisher.FluxOnAssembly '- может быть, не является общедоступным или недействительным?
Я не знаю, как решить проблему, надеюсь, вы можете мне помочь. Спасибо за ответ.