Java SpringMVC如何将数据从数据库显示到表中
我对SpringMVC很陌生,所以目前我对它还不太了解。我想在表视图中显示数据库中的所有字段,我该怎么做 在我的控制器中Java SpringMVC如何将数据从数据库显示到表中,java,database,spring-mvc,Java,Database,Spring Mvc,我对SpringMVC很陌生,所以目前我对它还不太了解。我想在表视图中显示数据库中的所有字段,我该怎么做 在我的控制器中 @RequestMapping(value = "task", method = RequestMethod.GET) public String taskList(Map<String, Object> model) { model.put("task", taskRepository.findAll()); retu
@RequestMapping(value = "task", method = RequestMethod.GET)
public String taskList(Map<String, Object> model) {
model.put("task", taskRepository.findAll());
return "/tasks/list";
}
@RequestMapping(value=“task”,method=RequestMethod.GET)
公共字符串任务列表(映射模型){
model.put(“task”,taskRepository.findAll());
返回“/任务/列表”;
}
我的jsp:
<%@include file="/WEB-INF/views/includes/header.jsp"%>
<h4 class="form-header">${title}</h4>
<div class="forms col-md-12 bounceInDown mainContent" data-wow-delay="0.2s">
<table class="table table-striped">
<thead>
<tr>
<th>Task ID</th>
<th>Task Name</th>
<th>Task Description</th>
</tr>
</thead>
<tbody>
<c:if test="${empty task}">
<tr>
<td colspan="8">No task to Display</td>
</tr>
</c:if>
<c:if test="${not empty task}">
<c:forEach items="${tasks}" var="task">
<tr class="">
<td>${task.taskid}</td>
<td>${task.taskName}</td>
<td>${task.taskDescription}</td>
<td>
<fmt:message key="task.list.status.text.${task.status}" />
</td>
</tr>
</c:forEach>
</c:if>
</tbody>
</table>
</div>
<%@include file="/WEB-INF/views/includes/footer.jsp"%>
${title}
任务ID
任务名称
任务描述
没有要显示的任务
${task.taskid}
${task.taskName}
${task.taskDescription}
对于初学者,我的taskRepository atm中没有任何内容:
@RequestMapping(value = "task", method = RequestMethod.GET)
public String taskList(Map<String, Object> model) {
model.put("task", taskRepository.findAll());
return "/tasks/list";
}
现在,您的控制器应该如下所示:
@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
}
}
@Autowired
有些服务,有些服务;
@RequestMapping(value=“task”,method=RequestMethod.GET)
@应答器
公共列表任务列表(地图模型){
List dtoList=someService.findALl();
返回数据集成商;
}
另一方面,您的服务应该如下所示:
@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
}
}
@服务
公共类服务(){
@自动连线
任务库任务库;
公共列表findAll(){
返回assemblyTasks(taskRepository.findAll());//TODO实现方法assemblyTasks
}
}
请注意,我将您的存储库使用情况放入了服务中。这是应该采用的方式。您应该使用服务从数据库中获取数据,然后使用专门设计的对象-数据传输对象返回数据。
我将assemblyTask方法的实现留给您。您需要做的是指定要通过dto对象从实体传递到视图的字段。通常,您希望每个DTO对象都有一个汇编器类,但为了简单起见,我使用方法介绍了这个想法。如果您想了解有关DTO的更多信息,请查看以下帖子:
如果您完全不熟悉Spring world,我建议您也可以找到一些基本的web教程,例如:
首先创建一个具有类似于jsp中使用的字段的对象,并使用模拟对象存根该方法,您应该可以看到记录。接下来,您可以从数据库中获取数据并映射到这个对象。但确切的问题是什么?