2016-04-12 13 views
3

SPRING MVC ile çok yeniyim, o andan itibaren gerçekten bu konuda pek bir şey bilmiyorum. Veritabanındaki tüm alanları bir tablo görünümünde görüntülemek istiyorum. Bunu nasıl yaparım? benim denetleyicisiSpring MVC veri tabanından tabloya nasıl görüntüleneceğini gösterir

@RequestMapping(value = "task", method = RequestMethod.GET) 
    public String taskList(Map<String, Object> model) { 
      model.put("task", taskRepository.findAll()); 
     return "/tasks/list"; 
     } 

benim jsp: Sen shoul

@RequestMapping(value = "task", method = RequestMethod.GET) 
public String taskList(Map<String, Object> model) { 
     model.put("task", taskRepository.findAll()); 
     return "/tasks/list"; 
    } 

:

<%@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"%> 

i başlayanlar için benim taskRepository atm

+0

Başlat bir oluşturarak Nesneleri jsp olarak kullanılan alanlara benzer ve sahte nesneleri ile yöntemi saptayarak kayıtları görmelisiniz. Ardından, verileri DB'den alabilir ve bu nesneye eşleyebilirsiniz. –

+0

Ama tam olarak sorun nedir? – Enigo

cevap

3

içinde bir şey yok d String değeri yerine oluşturduğunuz bazı nesneleri döndür. Size iki alan aktarmayı istediğinizi düşünelim, onlara alan1 ve alan2 adını verin.

public class MyEntityDto{ 
    private String filed1; 
    private String field2; 
    //Getter and setter method 
    . 
    . 
    . 
} 

Şimdi kontrolör bu gibi görünmelidir:

@Service 
public class SomeService(){ 
    @Autowired 
    TaskRepository taskRepository; 

    public List<MyEntityDto> findAll(){ 
    return assemblyTasks(taskRepository.findAll());//TODO implement method assemblyTasks 
    } 
} 

Uyarı:

@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; 
    } 

Öte yandan gelen Hizmetiniz bu gibi görünmelidir Şimdi Veri Aktarım Nesnesi depo kullanımınızı hizmete soktuğum bu, yapılması gerektiği gibi. Veritabanınızdan veri almak için ve bu amaçla nesne - Data Transferi Nesnesi için özel tasarım kullanarak verilerinizi iade etmek istediğinizden hizmet kullanmalısınız. AssemblyTask yönteminin uygulanmasını size bırakıyorum. Orada yapmanız gereken şey, dit nesnesinden görmek için varlıktan geçmek istediğiniz alanları atamaktır. Genel olarak her bir DTO nesnesi için bir assembler sınıfına sahip olmak istersiniz, ancak basitlik uğruna fikrini kullanarak yöntemi tanıttım. Eğer bazı temel bilgiler web öğreticiler bulmak da tavsiye Bahar dünyaya tamamen yeni iseniz burada örneğin getting-value-of-invalid-field-after-methodargumentnotvalidexception

: Eğer DTO hakkında daha fazla okumak istiyorsanız, bu yayını görüntülemek gonetoseries

İlgili konular