2011-08-02 19 views
0

私はこの例外を得続ける:コントローラから式の値として属性を取得する方法は?

javax.el.PropertyNotFoundException:私はこれを実行しようとすると、プロパティ 'メッセージ' タイプcom.itworx.twitter.model.User

には見られません私のコントローラからのコード:

@RequestMapping(value="/profile", method=RequestMethod.GET) 
    public ModelAndView goProfile(@ModelAttribute("user") User user){ 
     if(user != null){ 
      ModelAndView modelAndView = new ModelAndView("profile-layout"); 
      List< Message> messages=service.getUserMessages(user.getUsername()); 
      /*user.setMessages(messages);*/ 
      /*modelAndView.addObject("user",user);*/ 
      modelAndView.addObject("userMessages",messages); 
      return modelAndView; 
     }else{ 
      return new ModelAndView("register-layout"); 
     } 

    } 

ユーザーBeanが、このようなものです:

@Entity 
@Table(name="user") 
public class User implements Serializable { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = -5689970869179555442L; 

    @Id 
    @Column(name="username") 
    /*@NotNull*/ 
    private String username; 

    @Column(name="password") 
    private String password; 

    @Column(name="email") 
    /*@Email*/ 
    private String email; 

    @ManyToMany 
    @JoinTable(name="user_follower",joinColumns={@JoinColumn(name="username")}, 
      inverseJoinColumns={@JoinColumn(name="follower")}) 
    private List<User> followers = new ArrayList<User>(0); 

    /*@LazyCollection(LazyCollectionOption.FALSE)*/ 
    @OneToMany 
    @JoinTable(name="user_message",joinColumns={@JoinColumn(name="username")}, 
      inverseJoinColumns={@JoinColumn(name="message_date")}) 
    @OrderBy(value="messageDate") 
    private List<Message> messages = new ArrayList<Message>(0); 

    public User() { 

    } 

    public String getUsername() { 
     return this.username; 
    } 

    public void setUsername(String username) { 
     this.username = username; 
    } 

    public String getPassword() { 
     return this.password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

    public void setUserFollowers(List<User> followers) { 
     this.followers = followers; 
    } 

    public List<User> getUserFollowers() { 
     return followers; 
    } 

    public void setMessages(List<Message> messages) { 
     this.messages = messages; 
    } 

    public void addMessage(Message message){ 
     this.messages.add(message); 
    } 

    public List<Message> getMessages() { 
     return messages; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 

} 

とDAOの実装は、このようなものです:

public List<Message> getUserMessage(String username) { 
     session=sessionFactory.getCurrentSession(); 
     @SuppressWarnings("unchecked") 
     List<Message> messages=session.createCriteria(User.class).setFetchMode("messages", FetchMode.JOIN) 
     .add(Restrictions.eq("username", username)).list(); 
     return messages; 
    } 

ページはこのようなものです:

<body> 
    <table id="feeds" style='width: 100%'> 
    <tr></tr> 
    </table> 
    <table style='width: 100%'> 
    <tr></tr> 
     <c:forEach var="msg" items="${userMessages}"> 
      <tr> 
       <td> 
        <c:out value="${msg.message}" /> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <c:out value='${msg.messageDate}' /> 
       </td> 
      </tr> 
     </c:forEach> 
    </table> 
</body> 

答えて

0

申し訳ありませんが、この返信は週齢であるので、あなたはおそらくこれを考え出したが、しました私はあなたのDAOの実装に問題があると思う。このライン:

List<Message> messages=session.createCriteria(User.class) 
     .setFetchMode("messages", FetchMode.JOIN) 
     .add(Restrictions.eq("username", username)).list(); 

は実際に初期化さmessagesコレクションとUserオブジェクトのリストをあなたに戻って与えるつもりです。あなたが探しているもの

session=sessionFactory.getCurrentSession(); 
@SuppressWarnings("unchecked") 
User userWithMessages=session.createCriteria(User.class) 
     .setFetchMode("messages", FetchMode.JOIN) 
     .add(Restrictions.eq("username", username)).uniqueResult(); 
return userWithMessages.getMessages(); 

はあなたを与える必要があります(おそらくすでにあなたを与えた):

これにDAOの方法を変更します。

+0

ええ私はそれを理解しましたが、ちょっとあなたに感謝この記事は、同じ問題で誰かを助けるかもしれないありがとう –

関連する問題