【发布时间】:2019-03-29 09:56:55
【问题描述】:
我创建了一个实体Post,它有一个属性body,这个属性存储markdown(文本),我想将body转换成html(并在jsp视图中呈现)所以我添加了一个实例方法到实体:
@Entity
@Table(name = "posts")
public class Post {
@NotBlank
private String body
// ... getters/setters
public String bodyToHtml() {
Parser parser = Parser.builder().build();
Node document = parser.parse(StringEscapeUtils.escapeHtml4(body));
HtmlRenderer renderer = HtmlRenderer.builder().build();
return renderer.render(document);
}
}
JSP:
<c:forEach var="post" items="${posts}">
<div class="post-body">
${post.bodyToHtml()}
</div>
<hr>
</c:forEach>
我想知道定义这样的方法是否正确?用于此类目的的 java/spring 中的最佳实践是什么?
【问题讨论】:
-
这不是一个好的设计。我将为
Post创建一个 DTO 对象和一个服务方法,其中完成从实体到 DTO 的映射(=html 渲染)。 -
感谢@DerM 的提示,我会看看我能做什么。
标签: java spring-boot jsp