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>
嗯是的我已經想通了,但嘿謝謝你這篇文章可能會幫助有同樣問題的人謝謝你 –