进一步扩展getContentAsHtml方法来提供更丰富的HTML内容和样式。以下是一个改写后的示例,它包括了更详细的样式设置和可能的文本内容处理:
| public class Policy { | |
| private int id; | |
| private String title; | |
| private String content; // 政策内容文本字段 | |
| // 构造方法、getter、setter等其他代码省略... | |
| /** | |
| * 返回政策内容的HTML格式版本。 | |
| * | |
| * @return 政策内容的HTML字符串 | |
| */ | |
| public String getContentAsHtml() { | |
| // 使用StringBuilder来构建HTML字符串,因为它在处理大量字符串拼接时更高效 | |
| StringBuilder htmlBuilder = new StringBuilder(); | |
| // 添加HTML文档的基本结构 | |
| htmlBuilder.append("<html>"); | |
| htmlBuilder.append("<head>"); | |
| htmlBuilder.append("<style>"); | |
| // 添加CSS样式 | |
| htmlBuilder.append("body { font-family: Arial, sans-serif; }"); | |
| htmlBuilder.append("p { margin: 10px 0; }"); | |
| // 可以添加更多样式... | |
| htmlBuilder.append("</style>"); | |
| htmlBuilder.append("</head>"); | |
| htmlBuilder.append("<body>"); | |
| // 添加标题(如果需要) | |
| if (title != null && !title.isEmpty()) { | |
| htmlBuilder.append("<h1>").append(title).append("</h1>"); | |
| } | |
| // 添加政策内容,使用<p>标签并处理换行符 | |
| htmlBuilder.append("<p>"); | |
| // 使用Java 8的Streams API来处理文本内容中的换行符(如果需要) | |
| // 这里简单地将换行符替换为<br>,但您还可以做更复杂的文本处理 | |
| htmlBuilder.append(Arrays.stream(content.split("\n")) | |
| .map(line -> line.trim() + "<br>") // 去除每行两端的空格,并添加<br> | |
| .collect(Collectors.joining())); | |
| htmlBuilder.append("</p>"); | |
| // 添加HTML文档的结束标签 | |
| htmlBuilder.append("</body>"); | |
| htmlBuilder.append("</html>"); | |
| // 返回HTML字符串 | |
| return htmlBuilder.toString(); | |
| } | |
| // ...其他代码保持不变... | |
| } |
在这个示例中,我们使用了StringBuilder来构建HTML字符串,并使用<style>标签在<head>部分添加了简单的CSS样式。我们还添加了对政策标题的处理(如果提供的话),并使用Java 8的Streams API来处理文本内容中的换行符,将其替换为<br>标签。这样可以确保在Web视图中正确显示多行文本,并且每行之间有一定的间距。

浙公网安备 33010602011771号