对于初学者:
@RequestMapping(value = "task", method = RequestMethod.GET)
public String taskList(Map<String, Object> model) {
model.put("task", taskRepository.findAll());
return "/tasks/list";
}
您应该返回您创建的一些对象而不是字符串值。假设您想将两个字段传输到您的页面,让它们命名field1 and field2。现在创建您的数据传输对象:
public class MyEntityDto{
private String filed1;
private String field2;
//Getter and setter method
.
.
.
}
现在你的控制器应该看起来像这样:
@Autowired
SomeSevice someService;
@RequestMapping(value = "task", method = RequestMethod.GET)
@ResponseBody
public List<MyEntityDto> taskList(Map<String, Object> model) {
List<MyEntityDto> dtoList = someService.findALl();
return dtoList;
}
另一方面,您的服务应该如下所示:
@Service
public class SomeService(){
@Autowired
TaskRepository taskRepository;
public List<MyEntityDto> findAll(){
return assemblyTasks(taskRepository.findAll());//TODO implement method assemblyTasks
}
}
请注意,我将您的存储库使用情况放入服务中。这就是它应该完成的方式。您应该使用服务来从数据库中获取数据,然后使用专门为此目的设计的对象(数据传输对象)返回数据。
我将 assemblyTask 方法的实现留给您。您需要做的就是分配要从实体传递到通过 dto 对象查看的字段。通常,您希望每个 DTO 对象都有一个汇编器类,但为了简单起见,我通过使用方法引入了这个想法。如果您想了解有关 DTO 的更多信息,请查看这篇文章:在方法参数notvalidException之后获取无效字段的值 https://stackoverflow.com/questions/36301358/getting-value-of-invalid-field-after-methodargumentnotvalidexception/36301927#36301927
如果您对 Spring 世界完全陌生,我建议您还可以找到一些基础知识网络教程,例如这里: