整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

SpringBoot根据动态内容生成静态html


pring Boot中,你可能想要基于动态内容生成静态HTML页面。有几种方法可以实现这一目标,以下是其中的一些方法:

使用模板引擎:
你可以使用模板引擎(如Thymeleaf、Freemarker或Velocity)来动态渲染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  
    // ...  
}

使用WebView库(如Jsoup):
如果你想在没有模板引擎的情况下生成HTML,可以使用像Jsoup这样的库来构建HTML文档,然后保存为文件。

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));  
}

使用RestTemplate或WebClient:
如果你的静态HTML内容来自另一个Web服务,你可以使用RestTemplate或WebClient来获取动态内容,然后将其保存为静态文件。

@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时,请考虑以下几点:

  • 确保你有适当的权限来写入文件系统。
  • 小心处理用户提供的输入,以避免安全风险,如跨站脚本(XSS)攻击。
  • 考虑生成的静态文件如何与你的应用程序的其他部分(如静态资源处理程序)集成。
  • 监控文件系统的使用情况,以避免耗尽磁盘空间。
  • 考虑生成的静态内容的缓存和过期策略。

要源码请评论后加前端学习群470593776

课题:HTML5加原生js打造一个炫酷动态的太阳系

简介:首先对于太阳系各大星球的运转关系,速度等资料,不然弄出来也是被喷的下场,

还有对于逻辑思维,算法的一些掌握要牢固

特别是对于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、手机网页演示

如果电脑装了网络服务器,可以在同一局域网的电脑或手机中,打开浏览器输入网址打开网页,就能看到动态图表滚动显示。