在这个html中:
<div class="container">
<div class="w-50">
<h1> MyBlog </h1>
<div><h3 class="font-weight-bold" th:text="${post.title}"></h3></div >
<div th:text="${post.content}"></div >
<div><span>Category: </span><span th:text="${post.category}"></span></div>
<div><span>Author: </span><span th:text="${post.signature}"></span></div >
<div th:text="${#dates.format(post.date, 'dd-MM-yyyy')}"></div >
</div>
<div class="w-50" th:each="comment : ${post.comments}">
<div th:text="${comment.contentCom}"></div>
<div th:text="${comment.author}"></div>
<div th:text="${#dates.format(comment.dateCreated, 'dd-MM-yyyy')}"></div >
</div>
</div>
没有线:
<div th:text="${#dates.format(comment.dateCreated, 'dd-MM-yyyy')}"></div >
页面正确加载,显示所有字段。否则我收到状态500和错误:
SpelEvaluationException:EL1008E:属性或字段&#39; dateCreated&#39;在类型对象上找不到&#39; pl.reaktor.model.Comment&#39; - 也许不公开?
这些是实体:
博客对象:
package pl.reaktor.model;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="blog")
public class Blog {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id")
private Long id;
@Column(name="title")
private String title;
@Lob
@Column(name="content")
private String content;
@Column(name="category")
private String category;
@Column(name="signature")
private String signature;
@Column(name="createdate", updatable = false)
private Date date = new Date();
@Column(name="editdate")
private Date updateDate = new Date();
@OneToMany(mappedBy = "post", cascade = CascadeType.REMOVE)
private List<Comment> comments;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getSignature() {
return signature;
}
public void setSignature(String signature) {
this.signature = signature;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public List<Comment> getComments() {
return comments;
}
public void setComments(List<Comment> comments) {
this.comments = comments;
}
public Blog(){}
public Blog(Long id, String title, String content, String category, String signature, Date date) {
super();
this.id = id;
this.title = title;
this.content = content;
this.category = category;
this.signature = signature;
this.date = date;
this.updateDate = date;
}
}
注释:
package pl.reaktor.model;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="comments")
public class Comment {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="comment_id")
private Long cid;
@Column(name="comment_author")
private String author;
@Column(name="comment_content")
private String contentCom;
@Column(name="date_created", updatable=false)
private Date dateCreated = new Date();
@ManyToOne
@JoinColumn(name="post", referencedColumnName="id")
private Blog post;
public Long getCid() {
return cid;
}
public void setCid(Long cid) {
this.cid = cid;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getContentCom() {
return contentCom;
}
public void setContentCom(String contentCom) {
this.contentCom = contentCom;
}
public Date getDate() {
return dateCreated;
}
public void setDate(Date date) {
this.dateCreated = date;
}
public Blog getPost() {
return post;
}
public void setPost(Blog post) {
this.post = post;
}
public Comment() {}
public Comment(String author, String contentCom, Date dateCreated) {
super();
this.author = author;
this.contentCom = contentCom;
this.dateCreated = dateCreated;
}
}
如何在这种情况下检索日期?
答案 0 :(得分:1)
我假设您的getters
类字段没有Comment
。
Spring Expression Language使用标准的JavaBean命名约定/语义。当您尝试访问comment.dateCreated
时,它会查找comment.getDateCreated()
。如果您缺少具有私有字段的getter方法,则会假设您没有该字段。
public Date getDateCreated() {
return this.dateCreated();
}
或者,如果您没有为访问者方法使用标准命名约定(看起来不是,使用getDate()
返回createdDate
字段),则可以使用{{ 1}}以下内容。
SpEL