2017-06-08 65 views
0

您好我有,當我顯示有關選擇滑雪細節錯誤:不知道如何遍歷提供「項目」中的forEach

JSP代碼:

<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> { 

我試過的方法是這樣

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

但它是同樣的問題。

有人可以幫忙嗎?

堆棧跟蹤是如下:

javax.servlet.jsp.JspTagException:不知道如何遍歷在<的forEach > org.apache.taglibs.standard.tag超過 提供的 「項目」。 .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) 組織.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)

+0

我不確定,但重複的變量名稱可能不明確。使用var =「ski」並重試。 –

+0

還是一樣的錯誤 –

+0

刪除foreach循環,findOne方法返回一個對象? –

回答

0

刪除foreach循環,findOne方法返回一個對象。您可以直接像這樣訪問值:${skis.company}

0

答案是註釋。沒有必要在jsp中循環實體。