我对SPRING MVC很新,所以到目前为止我真的不太了解它。我想在表格视图中显示数据库中的所有字段我该怎么做?
在我的控制器中
@RequestMapping(value = "task", method = RequestMethod.GET)
public String taskList(Map<String, Object> model) {
model.put("task", taskRepository.findAll());
return "/tasks/list";
}
我的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"%>
我的taskRepository atm里面没有任何东西
答案 0 :(得分:3)
首先:
@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
.
.
.
}
现在你的控制器应该是这样的:
@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的更多信息,请查看此帖子: getting-value-of-invalid-field-after-methodargumentnotvalidexception
如果您对Spring世界完全陌生,我建议您也找一些基础网络教程,例如: gonetoseries