@RequestMapping("obtainDishes") @ResponseBody public Object obtainDishes(String cartname){ List<Map> list=JSONObject.parseObject(cartname,List.class); List<Dishes> getList=new ArrayList<>(); for (Map ma : list) { Dishes dishes=dishesMapper.findList(ma); BigDecimal money1=new BigDecimal(dishes.getMoney()).multiply(new BigDecimal(ma.get("num").toString())); dishes.setMoney1(money1); dishes.setNum(ma.get("num").toString()); getList.add(dishes); } return getList; }
时间: 2024-04-02 16:37:49 浏览: 226
这段代码是一个基于Spring MVC框架编写的后端接口,用于获取购物车中的菜品列表。其中,@RequestMapping注解表示该方法与前端的/obtainDishes路径对应,@ResponseBody注解表示返回结果是一个JSON对象。该方法接受一个cartname参数,表示购物车中的菜品列表,将其转换成List<Map>对象。接着,循环遍历每一个Map对象,将其作为参数调用dishesMapper的findList方法获取对应的Dishes对象。然后,根据购物车中的数量计算出该道菜品的总价,并将其设置到Dishes对象的money1属性中。最后,将Dishes对象添加到getList列表中,并返回给前端。
相关问题
@RequestMapping("/getPage") @ResponseBody public Page<TbServiceAccept> getPage(HttpServletRequest request, HttpServletResponse response, HttpSession session, Model model, Page<TbServiceAccept> page, TbServiceAccept tbServiceAccept) { Map<String, Object> map = new HashMap<String, Object>(); map.put("createtimeGt",tbServiceAccept.getCreatetimeGt()); map.put("createtimeLt",tbServiceAccept.getCreatetimeLt()); map.put("clientphone",tbServiceAccept.getClientphone()); map.put("receiver",tbServiceAccept.getReceiver()); map.put("crmnumber",tbServiceAccept.getCrmnumber()); page= tbServiceAcceptService.findByPage(map, page); for (TbServiceAccept tbServiceAccept1 : page.getItems()) { List<Map<String, Object>> usermap = tbUserInfoService.findCustom("select * from tb_User_Info where (username = #{p[0]} or phone =#{p[0]}) and isDelete = 0", new Object[]{tbServiceAccept1.getId()}); if (!usermap.isEmpty()) { tbServiceAccept1.setJson(new JSONObject().fluentPut("khPhone", usermap.get(0).get("khPhone"))); } } return page;怎么改,不要findCustom改为list并且不用map方法
您可以将`findCustom`方法替换为`list`方法,并且不使用`Map`来存储参数。下面是修改后的代码:
```java
@RequestMapping("/getPage")
@ResponseBody
public Page<TbServiceAccept> getPage(HttpServletRequest request, HttpServletResponse response, HttpSession session, Model model, Page<TbServiceAccept> page, TbServiceAccept tbServiceAccept) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("createtimeGt", tbServiceAccept.getCreatetimeGt());
map.put("createtimeLt", tbServiceAccept.getCreatetimeLt());
map.put("clientphone", tbServiceAccept.getClientphone());
map.put("receiver", tbServiceAccept.getReceiver());
map.put("crmnumber", tbServiceAccept.getCrmnumber());
page = tbServiceAcceptService.findByPage(map, page);
for (TbServiceAccept tbServiceAccept1 : page.getItems()) {
List<TbUserInfo> userInfos = tbUserInfoService.list("select * from tb_User_Info where (username = ? or phone = ?) and isDelete = 0", new Object[]{tbServiceAccept1.getId(), tbServiceAccept1.getId()});
if (!userInfos.isEmpty()) {
TbUserInfo userInfo = userInfos.get(0);
tbServiceAccept1.setJson(new JSONObject().fluentPut("khPhone", userInfo.getKhPhone()));
}
}
return page;
}
```
这里使用`list`方法代替了`findCustom`方法,并直接传入参数数组作为查询条件。同时,使用`TbUserInfo`对象来存储查询结果,无需再使用`Map`。
在Spring MVC中,JSON类型的数据如何交互?请按照返回实体对象、ArrayList集合、Map<String, Object>集合以及List<Map<String, Object>>集合举例说明。
在Spring MVC中,处理JSON数据通常涉及到将Java对象转换为JSON格式,以便通过HTTP响应发送给前端,或者从JSON字符串解析到对应的Java对象。以下是四个例子:
1. **返回实体对象**:如果你有一个名为`User`的Java类,你可以将其封装在`@ResponseBody`注解的控制器方法中。例如:
```java
@RequestMapping(value = "/users", method = RequestMethod.GET)
public User getUser(@RequestBody Long id) {
User user = userService.findById(id);
return user;
}
```
当客户端请求该URL时,Spring会自动将`User`对象转换成JSON并返回。
2. **ArrayList集合**:对于一个`List<User>`,可以这样做:
```java
@RequestMapping("/users/list")
@ResponseBody
public List<User> getUsersList() {
return userService.getAllUsers();
}
```
Spring会把整个列表转换为JSON。
3. **Map<String, Object>集合**:如果需要返回键值对,比如用户的属性映射,可以创建一个自定义的Java对象,然后转化为Map:
```java
@GetMapping("/users/detailed")
@ResponseBody
public Map<String, Object> getDetailedUser(User user) {
Map<String, Object> map = new HashMap<>();
map.put("id", user.getId());
map.put("name", user.getName());
// ...
return map;
}
```
4. **List<Map<String, Object>>集合**:如果数据结构更复杂,如搜索结果包含多个字段,可以返回这样的格式:
```java
@GetMapping("/search/users")
@ResponseBody
public List<Map<String, Object>> searchUsers(String query) {
List<UserSearchResult> results = userService.search(query);
List<Map<String, Object>> jsonResults = results.stream()
.map(result -> ImmutableMap.of("id", result.getUserId(), "name", result.getUserName()))
.collect(Collectors.toList());
return jsonResults;
}
```
阅读全文
相关推荐












