pring Boot中,你可能想要基于动态内容生成静态HTML页面。有几种方法可以实现这一目标,以下是其中的一些方法:
下面是一个使用Thymeleaf的简单示例:
@Service
public class StaticHtmlGeneratorService {
@Autowired
private TemplateEngine templateEngine;
@Autowired
private ApplicationContext applicationContext;
public void generateStaticHtml(String templateName, Map<String, Object> context, String outputPath) {
Context thContext = new Context();
thContext.setVariables(context);
String processedHtml = templateEngine.process(templateName, thContext);
try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputPath))) {
writer.write(processedHtml);
} catch (IOException e) {
// Handle exception
}
}
}
这段代码不是完整的实现,因为TemplateEngine类并不是Spring Boot标准库中的一部分。在实际应用中,你会使用具体的模板引擎的API(例如Thymeleaf的TemplateEngine),并相应地调整代码。
实际上,Spring Boot集成Thymeleaf后,你会这样使用Thymeleaf的API:
@Autowired
private SpringTemplateEngine templateEngine;
public void generateStaticHtml(String templateName, Map<String, Object> contextVars, String outputPath) {
Context context = new Context();
context.setVariables(contextVars);
String processedHtml = templateEngine.process(templateName, context);
// Write the processedHtml to a file
// ...
}
public void generateStaticHtmlWithJsoup(String title, String bodyContent, String outputPath) throws IOException {
Document doc = Jsoup.parse("<html><head><title></title></head><body></body></html>");
doc.title(title);
doc.body().append(bodyContent);
// 美化输出(Pretty-print)
doc.outputSettings().prettyPrint(true);
// 写入文件
Files.write(Paths.get(outputPath), doc.outerHtml().getBytes(StandardCharsets.UTF_8));
}
@Autowired
private RestTemplate restTemplate;
public void generateStaticHtmlFromWebService(String url, String outputPath) throws IOException {
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
if (response.getStatusCode() == HttpStatus.OK) {
Files.write(Paths.get(outputPath), response.getBody().getBytes(StandardCharsets.UTF_8));
}
}
在生成静态HTML时,请考虑以下几点:
要源码请评论后加前端学习群470593776
简介:首先对于太阳系各大星球的运转关系,速度等资料,不然弄出来也是被喷的下场,
还有对于逻辑思维,算法的一些掌握要牢固
特别是对于HTML5+js配合使用的方式,其实现在很多特效都是HTML5+JS的配合使用
纯html5动画固然有优势,但是实用性暂时还不太高,特别是对于兼容性的一些处理
下面我们来看看部分代码
PS:因为代码不方便阅读以及复制,所以只发部分源码思路
完整的免费源码及思路讲解,请评论后加前端学习交流群470593776获取!
需要源码请评论后加前端学习群470593776
<script src="https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>
一、数据源
数据源格式如下图,每一行为各地的GDP及三产业数据,A列作为辅助区域(由C列和B列合并而成)。
二、制作选择器
以地区作为筛选字段。
1、插入数据透视表
选择数据源A:G列,插入数据透视表到新工作表的P1单元格。将[地区]字段拖拽到[行区域]。再隐藏数据透视表的字段标题、禁用行和列的总计。
2、设置选择器
在菜单栏[开发工具]的[插入]命令中选择[列表框]控件,在单元格L8画出一个列表框。
用鼠标右键单击列表框,在弹出的快捷菜单单击[设置控件格式(F)],进入[设置对象格式]对话框,将[数据源区域]设置为数据透视表所在的区域P1:P32,将[单元格链接]设置为存放选择结果的单元格N2,单击[确定]按钮。
三、数据辅助区域
1、年份
第一行为年份,在K1单元格输入最近的年份后,其他左侧单元格自动依次递减。
在J1单元格输入公式:=K1-1。并将公式复制到B1:I1区域。
2、地区(省份)
根据选择结果(N2单元格),将地区引用到A1单元格。则在A1单元格输入公式:=INDEX(P1:P32,N2)。
3、按条件提取数据
在B2单元格输入公式:=VLOOKUP(B&$A1,各省GDP!$A:$D,4,0),并将公式复制到C2:K2数据区域。将选定区域对应年份的数据提取到辅助区域。
在A4单元格分别输入第三产业。在其右侧单元格输入公式。
在B4单元格输入公式:=VLOOKUP(B&$A,各省GDP!$A:$G,7,0)
再将B4:B4数据区域的公式复制到C4:K4,将选定区域对应年份第三产业数据提取到辅助区域。
在B3单元格输入公式:=B4/B2,并将公式复制到C3:K3,计算出第三产业占比。
四、制作图表
1、插入折线图(按年趋势图)
选中A2:K3数据区域,插入[带数据标记的折线图],[水平(分类)轴标签]选择B1:K1数据区域。
将系列[GDP]设置为[次坐标轴]。
2、设置图表格式:
①图表名称=A1单元格;
②主坐标轴最小值设置为0,最大值设置为1;
③图例靠上显示,与图表重叠。
五、导出图表(VBA)
通过VBA编写代码循环改变区域,实现对数据的动态引用,并将图表导出到文件夹。
1、参数区域
将N7单元格作为参数区域,通过更改参数,可以设置图表导出的文件夹。
2、VBA代码
新建export_chart4模块,键入以下代码。
3、制作按钮
在菜单栏[开发工具]的[插入]命令中选择[按钮]控件,在N11单元格插入一个按钮,命名为[导出图表],并指定宏为export_chart4。
4、导出图表
点击[导出图表]按钮将图表导出的文件夹。
六、Web页面(html)
1、html代码
在存放图片文件夹的上一级文件夹中新建show.html文档,用编程软件(比如Visual Studio Code)打开,键入以下代码。
2、本地网页演示
在show.html文档所在文件夹,直接打开网页。
3、手机网页演示
如果电脑装了网络服务器,可以在同一局域网的电脑或手机中,打开浏览器输入网址打开网页,就能看到动态图表滚动显示。
*请认真填写需求信息,我们会在24小时内与您取得联系。