我页面上有一个按钮(接受任务),顾名思义,点了就能把对应的任务接下来,现在想实现:点击按钮,弹窗提示“是否接收任务”,点是,通过任务ID(taskId)查到对应的任务,修改对应任务里的执行人(executorId)实现接收任务,然后弹窗调试接收成功,持续1.5秒后自动消失,之后跳转到一个controller控制器。
我用的是thymeleaf模板遍历出来taskId,现在遇到的问题是:
如果用js弹窗后用ajax调用controller,ajax里不知道怎么遍历对应的taskId传给控制器?还是我思路不对?
如果直接url传参到后台,后台又不知道怎么实现在页面弹窗确认之类。
@RequestMapping(value = "/acceptTask")
public String acceptTask(@RequestParam(name = "taskId") Integer taskId,
@RequestParam(name = "executorId") Integer executorId,
Model model) {
//通过URL中的参数taskId查找到对应的任务
Optional<Task> task = taskRepository.findById(taskId);
//修改任务的执行人ID
task.get().setExecutorId(executorId);
//修改任务状态为2-进行中
task.get().setStatus(2);
//保存修改
Task save = taskRepository.save(task.get());
if (save != null) {
model.addAttribute("msg", "恭喜!接受任务成功!");
} else {
model.addAttribute("msg", "抱歉!接受任务失败!");
}
return "redirect:/index";
}