2017-07-23 5 views
0

Ich baue Seite mit Spring Boot, die Schulklassen auflisten wird. Wenn Sie auf eine Klasse klicken, gelangen Sie auf die Detailseite der jeweiligen Klasse. SoID-Wert von Controller zu HTML-Seite übergeben - Spring/Java

ich als nächstes tat:

Classes.java

public class Classes { 

    private String class_id; 
    private String name; 
    private String description; 
    private int max_numb_students; 
    private int min_numb_students; 


    public String getId() { 
     return class_id; 
    } 
    public void setId(String class_id) { 
     this.class_id = class_id; 
    } 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public String getDescription() { 
     return description; 
    } 
    public void setDescription(String description) { 
     this.description = description; 
    } 
    public int getMax_numb_students() { 
     return max_numb_students; 
    } 
    public void setMax_numb_students(int max_numb_students) { 
     this.max_numb_students = max_numb_students; 
    } 
    public int getMin_numb_students() { 
     return min_numb_students; 
    } 
    public void setMin_numb_students(int min_numb_students) { 
     this.min_numb_students = min_numb_students; 
    } 

} 

Das ist mein Modell.

ClassesDao.java

public class ClassesDao { 

    private List<Classes> classesList; 

    public List<Classes> getClassesList(){ 

     Classes classes1 = new Classes(); 
     Classes classes2 = new Classes(); 
     Classes classes3 = new Classes(); 

     classes1.setId("p1"); 
     classes1.setName("Programming in Java"); 
     classes1.setDescription("Learn Java"); 
     classes1.setMax_numb_students(20); 
     classes1.setMin_numb_students(5); 

     classes2.setId("c2"); 
     classes2.setName("Programming in Pho"); 
     classes2.setDescription("Learn Php"); 
     classes2.setMax_numb_students(20); 
     classes2.setMin_numb_students(5); 

     classes3.setId("d3"); 
     classes3.setName("ING"); 
     classes3.setDescription("ing"); 
     classes3.setMax_numb_students(20); 
     classes3.setMin_numb_students(5); 

     classesList = new ArrayList<Classes>(); 
     classesList.add(classes1); 
     classesList.add(classes2); 
     classesList.add(classes3); 

     return classesList; 
    } 

    public Classes getClassesById(String class_id) throws IOException{ 
     for(Classes classes : getClassesList()){ 
      if(classes.getId().equals(class_id)){ 
       return classes; 
      } 
     } 

     throw new IOException("No product found"); 
    } 
} 

table.html

<tr th:each="classes : ${classes}"> 
<td th:text="${classes.name}"></td> 
<td th:text="${classes.description}"></td> 
<td><a href="/viewClass/${classes.class_id}"><span class="glyphicon glyphicon-info-sign"></span></a></td> 
</tr> 

Hier Link zu Detailseite.

Und Controller

Controller.java

@RequestMapping("/viewClass/{class_id}") 
    public String viewClass(@PathVariable String class_id, Model model) throws IOException{ 
     Classes classes = classesdao.getClassesById(class_id); 
     model.addAttribute(classes); 
     return "viewClass"; 
    } 

ich nicht richtig ID angezeigt werden erhalten können. Wenn ich über die Verbindung schweben bekomme ich diese

enter image description here

Also ich denke, ich nicht id richtig bestanden hat, aber ich kann es nicht herausgefunden.

public String getId() { 
     return class_id; 
    } 
    public void setId(String class_id) { 
     this.class_id = class_id; 
    } 

Fügen Sie diese:

Antwort

0

Try @PathVariable zu @PathVariable (name = "class_id")

0

entfernen, dies zu ändern

public String getClass_id() { 
     return class_id; 
    } 

    public void setClass_id(String class_id) { 
     this.class_id = class_id; 
    } 
0

Sie müssen URL kodieren

Fügen Sie Ihrer HTML-Datei zuerst die Spring-Tag-Bibliothek wie folgt hinzu:

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> 

kodieren Dann URL

<spring:url value="/viewClass/${classes.class_id}" var="url" htmlEscape="true"/> 
<a href="${url}">...</a> 
+0

ist das nicht für jsp? Ich verwende HTML-Seiten –

+0

Ich bin mir nicht sicher, aber ich denke, es ist nicht nur für JSP. – fg78nc

Verwandte Themen