2015-05-27 69 views
0

我有這樣的例外和d我不能找到一個解決方案JSP找不到方法:類java.lang.String

控制器:

@RequestMapping(value="/sujet") 
    public String detail(Model model, HttpServletRequest request, Long idSujet) { 
     Utilisateur user = (Utilisateur) request.getSession().getAttribute("user"); 
     model.addAttribute("nbrMails", metierUtilisateur.listDesEmailsRecuNonLu(user.getIdUtilisateur()).size()); 

     SujetForum sujet = metierSujetForum.findById(idSujet); 
     sujet.setMessagesForums(metierSujetForum.getListMessageForum(idSujet)); 

     model.addAttribute("sujet", sujet); 
     model.addAttribute("messages", metierSujetForum.getListMessageForum(idSujet)); 


     return "/coordinateur/detailSujetForum"; 
    } 

這是我的bean定義: 我定義的所有getter和所有屬性的制定者,但直到得到相同的異常

@Entity 
public class MessagesForum implements Serializable { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long idMessage; 
    private String message; 
    private Date dateDepotMessage; 
    private boolean messageCorrecte; 

    @ManyToOne 
    @JoinColumn(name = "idSujet") 
    private SujetForum sujetForum; 

    @ManyToOne 
    @JoinColumn(name = "idUtilisateur") 
    private Utilisateur utilisateur; 

    @OneToMany(mappedBy = "messageForum") 
    private Collection<PieceJointeForum> pieceJointeForums; 

    public MessagesForum(String message, Date dateDepotMessage, boolean messageCorrecte) { 
     super(); 
     this.message = message; 
     this.dateDepotMessage = dateDepotMessage; 
     this.messageCorrecte = messageCorrecte; 
    } 

    public MessagesForum() { 
     super(); 
    } 

    public Long getIdMessage() { 
     return idMessage; 
    } 

    public void setIdMessage(Long idMessage) { 
     this.idMessage = idMessage; 
    } 

    public String getMessage() { 
     return message; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 

    public Date getDateDepotMessage() { 
     return dateDepotMessage; 
    } 

    public void setDateDepotMessage(Date dateDepotMessage) { 
     this.dateDepotMessage = dateDepotMessage; 
    } 

    public boolean isMessageCorrecte() { 
     return messageCorrecte; 
    } 

    public void setMessageCorrecte(boolean messageCorrecte) { 
     this.messageCorrecte = messageCorrecte; 
    } 

    public SujetForum getSujetForum() { 
     return sujetForum; 
    } 

    public void setSujetForum(SujetForum sujetForum) { 
     this.sujetForum = sujetForum; 
    } 

    public Utilisateur getUtilisateur() { 
     return utilisateur; 
    } 

    public void setUtilisateur(Utilisateur utilisateur) { 
     this.utilisateur = utilisateur; 
    } 

    public Collection<PieceJointeForum> getPieceJointeForums() { 
     return pieceJointeForums; 
    } 

    public void setPieceJointeForums(Collection<PieceJointeForum> pieceJointeForums) { 
     this.pieceJointeForums = pieceJointeForums; 
    } 

} 

這是異常的輸出

615:     <div class="media-body"> 
616:     <div class="media-text"> 
617:      <h5 class="semibold mt0 mb5 text-accent"></h5> 
618:      <p class="mb5">${msg.getIdMessage() }.</p> 
619:      <!-- meta icon --> 
620:      <p class="mb0"> 
621:      <span class="media-meta"></span> <span class="mr5 ml5 text-muted">*</span> <a href="javascript:void(0);" class="media-meta text-default" data-t 
oggle="tooltip" title="" data-original-title="Reply"><i class="ico-reply"></i></a> 


Stacktrace:] with root cause 
javax.el.MethodNotFoundException: Method not found: class java.lang.String.getIdMessage() 
    at javax.el.Util.findWrapper(Util.java:352) 
    at javax.el.Util.findMethod(Util.java:214) 
    at javax.el.BeanELResolver.invoke(BeanELResolver.java:174) 
    at org.apache.jasper.el.JasperELResolver.invoke(JasperELResolver.java:139) 
    at org.apache.el.parser.AstValue.getValue(AstValue.java:173) 
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184) 
    at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:967) 
    at org.apache.jsp.WEB_002dINF.views.coordinateur.detailSujetForum_jsp._jspx_meth_c_005fforEach_005f0(detailSujetForum_jsp.java:1242) 
    at org.apache.jsp.WEB_002dINF.views.coordinateur.detailSujetForum_jsp._jspService(detailSujetForum_jsp.java:832) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
+1

您試圖調用方法'getIdMessage()''一個對象String'上。類String中沒有這樣的方法。 – Jesper

+4

在你設置'msg'變量的jsp文件中顯示該部分。 – Serhiy

回答

0

msg在JSP中,這裏似乎是以String的形式出現的,而您期待您的bean類的類型。

後你得到的也豆

$ {msg.getIdMessage()}。

這似乎是JSP中的問題。只是嘗試與

${msg.idMessage() }. 
+0

我剛試過==>同樣的錯誤 –

+0

主要問題是,在jsp中設置msg屬性存在問題。它被設置爲字符串,而你期望它是類型的MessagesForum –

+0

所有setter的獲得者都可以 你可以看看實體 –

0

給我你的jsp,不要調用get方法你應該直接調用屬性值。像amit.rk3說的。和你在哪裏使用這條消息在JSP 使用這樣

<c:forEach var="msg" items="${messages}"> 
1
<c:forEach items="=${messages }" var="msg"> 
          <div class="media-list media-list-bubble"> 
       <div class="media"> 
       <a href="javascript:void(0);" class="media-object pull-left"> <img src="" class="img-circle" alt=""> 
       </a> 
       <div class="media-body"> 
        <div class="media-text"> 
        <h5 class="semibold mt0 mb5 text-accent"></h5> 
        <p class="mb5">${msg.idMessage }.</p> 
        <!-- meta icon --> 
        <p class="mb0"> 
         <span class="media-meta"></span> <span class="mr5 ml5 text-muted">*</span> <a href="javascript:void(0);" class="media-meta text-default" data-toggle="tooltip" title="" data-original-title="Reply"><i class="ico-reply"></i></a> 
        </p> 
        <!--/ meta icon --> 
        </div> 

       </div> 
       </div> 
      </div> 
         </c:forEach> 
相關問題