进一步扩展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视图中正确显示多行文本,并且每行之间有一定的间距。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)