2017-06-08 1 views
0

Hallo habe ich einen Fehler, wenn ich Informationen über ausgewählten Ski anzuzeigen:Sie wissen nicht, wie geliefert „items“ iterieren in forEach

JSP-Code:

<c:forEach var="skis" items="${skis}"> 

    <div class="container"> 
     <div class="card"> 
      <div class="container-fliud"> 
       <div class="wrapper row"> 
        <div class="preview col-md-6"> 

         <div class="preview-pic tab-content"> 
          <div class="tab-pane active" id="pic-1"><img src="#" /></div> 
         </div> 
         </div> 
        <div class="details col-md-6"> 
         <h3 class="product-title">${skis.company} - ${skis.model}</h3> 
         <p class="product-description">${skis.description}</p> 
         <h4 class="price">price per day: <span>12$</span></h4> 
         <h4>Day's reserved: </h4> 
</c:forEach> 

Controller: 

    @RequestMapping(value = "/ski/show-details/{skisId}" , method = RequestMethod.GET) 
    public String getShowDetailsPage(@PathVariable("skisId") Integer skisId, Model model) { 

     Skis skis = skisDAO.findOne(skisId); 


     model.addAttribute("skis", skis); 

     return "ski-details"; 
    } 

Model: 

    @Entity 
    @Table(name = "skis") 
    public class Skis { 

    @Id 
    @Column(name= "skisId") 
    @GeneratedValue 
    private Integer skisId; 

    @Column(name = "company", length = 20) 
    private String company; 

    @Column(name = "model", length = 20) 
    private String model; 

    @Column(name = "description", length = 200) 
    private String description; 

    @Lob 
    @Basic(fetch = FetchType.LAZY) 
    private byte[] photo; 



    @Repository 
    public interface SkisDAO extends CrudRepository<Skis, Integer> { 

ich mit Methode wie folgt versucht

@Query("select s from Skis s where s.skisId = :skisId") 
Skis findBySkisId(@Param("skisId") Integer skisId); 

Aber es ist das gleiche Problem.

Jemand kann helfen?

Stacktrace ist wie folgt:

javax.servlet.jsp.JspTagException: Sie wissen nicht, wie über geliefert "items" in <forEach> org.apache.taglibs.standard.tag iterieren .common.core.ForEachSupport.toForEachIterator (ForEachSupport.java:274) org.apache.taglibs.standard.tag.common.core.ForEachSupport.supportedTypeForEachIterator (ForEachSupport.java:238) org.apache.taglibs.standard.tag .common.core.ForEachSupport.prepare (ForEachSupport.java:155) javax.servlet.jsp.jstl.core.LoopTagSupport.doStartTag (Lo opTagSupport.java:256) org.apache.jsp.WEB_002dINF.ski_002ddetails_jsp._jspx_meth_c_005fforEach_005f0 (ski_002ddetails_jsp.java:483) org.apache.jsp.WEB_002dINF.ski_002ddetails_jsp._jspService (ski_002ddetails_jsp.java:317) org.apache.jasper. runtime.HttpJspBase.service (HttpJspBase.java:70) javax.servlet.http.HttpServlet.service (HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:438) org .apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service (JspServlet.java:340)

+0

Ich bin mir nicht sicher, aber doppelter Variablenname könnte mehrdeutig sein. Verwenden Sie var = "ski" und versuchen Sie es erneut. –

+0

Immer noch der gleiche Fehler –

+0

foreach loop entfernen, findOne Methode ein Objekt zurückgeben? –

Antwort

0

Entfernen foreach Schleife, findOne Methode zurück ein Objekt. Sie können direkt auf den Wert zugreifen: ${skis.company}.

0

Antwort in den Kommentaren ist. Es ist nicht notwendig, Entities in jsp zu loopen.

Verwandte Themen