但如何将其转换为OrderDto实体?我很难理解如何在DTO的地图中同时输入盘子ID和数量。
下面是一个超文本标记语言菜单的例子(只是多个单菜单类div所在的菜单类div)。
<div class="wrapper">
<div class="title">
<h4><span>Good food and great vibes</span>our menu</h4>
</div>
<div class="menu">
<div class="single-menu" th:each="dish : ${dishList}">
<img src="https://via.placeholder.com/150" alt="" />
<div class="menu-content">
<h4 th:text="${dish.nameEng}">chicken fried salad <span>$45</span></h4>
<p>
Aperiam tempore sit,perferendis numquam repudiandae porro
voluptate dicta saepe facilis.
</p>
<div class="myContainer m-1">
<button class="decrement" data-type="decrement" onclick="stepper(this)">-</button>
<input
type="number"
min="0"
max="100"
step="1"
value="0"
readonly
/>
<button class="increment" data-type="increment" onclick="stepper(this)">+</button>
</div>
</div>
</div>
以下是DTO的一个示例:
public class OrderDto {
private String userEmail;
private String userName;
Map<Dish, Integer> DishQuantityMap;
}
如果您可以以id to count格式发送DishQuantityMap
,比如Map,那就更好了
OrderDto类——就像你的例子一样,不要忘记getter和setter。
我假设Dish类看起来像这样:
public class Dish {
private Long id;
private String name;
private String description;
//default constructor, getters and setters
//since it is a key in a map you need proper overrides of hashCode() and equals()
}
我还假设您正在使用Jackson进行序列化/反序列化。Jackson不能只是将自定义对象反序列化为密钥,所以您需要为您的盘创建并注册
KeyDeserializer
。例如:
public class DishKeyDeserializer extends KeyDeserializer {
private static final ObjectMapper MAPPER = new ObjectMapper();
@Override
public Object deserializeKey(String key, DeserializationContext context) throws IOException {
return MAPPER.readValue(key, Dish.class);
}
}
在这里,我使用另一个映射器来简化字符串键的反序列化。您可以在示例中看到如何注册反序列化程序。
您的工作json将如下所示:
{
"userEmail": "mail@mail.mail",
"userName": "username",
"dishQuantityMap": {
"{\"id\":2,\"name\":\"food2\",\"description\":\"yummiest\"}": 19,
"{\"id\":1,\"name\":\"food1\",\"description\":\"yummy\"}": 11
}
}
请注意,映射中的键是如何将Dish对象转换为json字符串的,并正确转义引号。
还有一个例子:
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
//add key deserializer in module
module.addKeyDeserializer(Dish.class, new DishKeyDeserializer());
//register module
mapper.registerModule(module);
//getting the json as project resource, you get it however you need
InputStream stream = ClassLoader.getSystemResourceAsStream("order.json");
OrderDto parsedOrder = mapper.readValue(stream, OrderDto.class);
我使用以下列表从控制器填充了JSP中的下拉列表:“” 例如,我使用下拉菜单将5保存为db中thirdPartyOccupationId的值。当我重新加载页面时,值5不是选中的值。 同一段代码正在处理不同的字段,我不知道我错过了什么。 模型类: ReportClass.java 控制器.java 感谢任何指点。
如何创建一个选项菜单,如以下屏幕截图: 点击RecyclerView项目的“更多”图标后,应打开选项菜单! 我的尝试是这样的: 但这会导致问题,因为如果我点击RecyclerView item More按钮,则会单击完整项目。。。 这是我的RecyclerViewOnTouchListener: 我没有发现任何类似的问题,所以我希望你能帮助我!
我想从下面的列表中选择一个使用selenium的选项: 这里 但问题是没有列表可供选择。 在此输入图像说明 我到目前为止的代码: 需要帮助!!
我无法找到一种方法来创建一个输入字段在Flutter将打开一个下拉的名字列表。Flutter material Widgets可能吗? 就像这样
我是一个新手,所以请不要对我太苛刻!我试图理解如何构建屏幕并在其中来回导航,在导航过程中为其他屏幕带来价值。 我想建一个屏幕: 在lib中,我创建了一个models文件夹,其中包含cats.dart文件 我认为分离代码是一个好主意,在lib中创建另外两个文件夹,它们是 lib/屏幕 lib/小工具 因此,我在屏幕中创建了select_item.dart,在小部件中创建了cats_items.dar
我是maven新手,想用maven创建一个spring项目。下面提到的是我正在使用的命令: 它要求: 选择数字或应用筛选器(格式:[groupId:]artifactId,区分大小写包含): 它在要求什么?我试了所有的号码,我得到了这个消息: 请帮帮忙。