对于初学者:
@RequestMapping(value = "task", method = RequestMethod.GET)public String taskList(Map<String, Object> model) { model.put("task", taskRepository.findAll()); return "/tasks/list"; }您应该返回创建的某些对象而不是String值。假设您想将两个字段传输到您的页面,则将它们分别命名为 field1 和 field2
。现在创建您的数据传输对象:
public class MyEntityDto{ private String filed1; private String field2; //Getter and setter method . . .}现在,您的控制器应如下所示:
@AutowiredSomeSevice someService;@RequestMapping(value = "task", method = RequestMethod.GET)@ResponseBody public List<MyEntityDto> taskList(Map<String, Object> model) { List<MyEntityDto> dtoList = someService.findALl(); return dtoList; }另一方面,您的服务应如下所示:
@Servicepublic class SomeService(){ @Autowired TaskRepository taskRepository; public List<MyEntityDto> findAll(){ return assemblyTasks(taskRepository.findAll());//TODO implement method assemblyTasks }}请注意,我将您的存储库使用情况放入服务中,这是应该完成的方式。您应该使用服务来从数据库中获取数据,然后要使用针对该目的对象(数据传输对象)的专门设计来返回数据。我将AssemblyTask方法的实现留给您。您需要在其中分配要从实体传递以通过dto对象查看的字段。通常,您会希望为每个DTO对象都拥有一个汇编器类,但是为了简单起见,我通过使用method引入了这个想法。



