SpringMVC项目中创建实体类Work, 代表打卡员工,包含属性id和name,并生成其getter和setter方法。 项目中创建控制器WorkController, 此控制器中加入处理器方法(映射路径/mark),如下: public Work workMark(Work work) 方法实现要求: (1) 该处理器方法参数类型为Work,用于接收当前打卡员工信息,返回值类型为Work, 要求再将接收到的打卡员工以Json格式的数据返回 (2) 该处理器方法完成功能为:将work存入DBUtil中的markInfo集合中,存入key为“work”,存入value为此work对象;获取DBUtil中markInfo集合存的打卡总数,对其加1后,再次存入markInfo集合;最后方法返回work WorkController中添加处理器方法(映射路径/total),如下: public Map<String,Object> getTotal() 方法实现要求: (1) 返回值类型为Map, 要求函数返回DBUtil中的markInfo集合,此集合中保存了当前打卡员工信息和目前总的打卡数量,要求该集合要以JSON数据格式返回
时间: 2024-02-20 15:56:14 浏览: 41
好的,你的问题是如何实现一个SpringMVC项目中的控制器WorkController,其中包含处理器方法workMark和getTotal,实现打卡员工信息存储和获取总打卡数量的功能,是吗?
以下是实现该功能的代码:
```java
import java.util.HashMap;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/work")
public class WorkController {
@RequestMapping("/mark")
@ResponseBody
public Work workMark(@RequestBody Work work) {
// 将work存入DBUtil中的markInfo集合中,存入key为“work”,存入value为此work对象
DBUtil.markInfo.put("work", work);
// 获取DBUtil中markInfo集合存的打卡总数,对其加1后,再次存入markInfo集合
int totalCount = (int) DBUtil.markInfo.get("totalCount");
DBUtil.markInfo.put("totalCount", totalCount + 1);
// 方法返回work
return work;
}
@RequestMapping("/total")
@ResponseBody
public Map<String, Object> getTotal() {
// 返回DBUtil中的markInfo集合,此集合中保存了当前打卡员工信息和目前总的打卡数量
return DBUtil.markInfo;
}
}
class DBUtil {
// markInfo集合保存了当前打卡员工信息和目前总的打卡数量
public static Map<String, Object> markInfo = new HashMap<>();
static {
markInfo.put("totalCount", 0);
}
}
class Work {
private int id;
private String name;
public Work() {}
public Work(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
```
其中,workMark方法使用@RequestBody注解获取前端传来的JSON格式的数据,然后将其存入DBUtil中的markInfo集合中,并对打卡总数加1;getTotal方法直接返回DBUtil中的markInfo集合,以JSON格式返回。