ПРОБЛЕМА. Когда я отправлял форму, отчет сервера: «Не удалось преобразовать значение свойства типа java.lang.String [] в требуемый тип java.util.List для ингредиентов свойства».
МОЙ Угадай: я думаю, проблема в том, что собранные свойства - это String.
Я использую тимелист в качестве внешнего интерфейса.
ВОПРОС: Как я могу собрать ингредиенты, используя тимелист?
DOMAIN Taco:
private String name;
private List<Ingredient> ingredients;
DOMAIN Ingredient:
private final String id;
private final String name;
private final Type type;
public static enum Type{
WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE
}
CONTROLLER:
import taco.Ingredient.Type;
//method to show design
public String showDesign(Model model) {
List<Ingredient> ingredients = new ArrayList<>();
ingredientRepo.findAll().forEach(i-> ingredients.add(i));
Type[] types = Type.values();
for(Type type:types) {
model.addAttribute(type.toString().toLowerCase(),filterByType(ingr
edients, type));
}
model.addAttribute("taco", new Taco());
return "design";
}
//method that is used to handle the post request
@PostMapping
public String processDesignForm(Taco taco) {
log.info("process taco: "+taco);
return "redirect:/orders/current";
}
DESIGN(use thymeleaf):
<form method="POST" th:object="${taco}">
<div th:each="ingredient : ${wrap}">
<input name="ingredients" type="checkbox"
th:value="${ingredient.id}" />
</div>
</form>