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小時內與您取得聯系。