读取 fvs 资源。

String initialTmpTplPath = WebUtils.getHTTPRequestParameter(request, "initialTmpTplPath"),  
        reuseResourceID = id(request);  
DuchampIO.checkInvalidPath(initialTmpTplPath);  
String path = ReuseResourceUtils.mainContentFilePath4FVS();  
try (InputStream inputStream = ReuseResourceInfoManager.readInnerResource(reuseResourceID, path)) {  
    //将复用模板资源里面的content/Template.fvs 解压到assets/fvs/initial_temp/uuid.fvs下作为新建模板资源  
    ZipSyncService.getInstance().writeFolder(initialTmpTplPath, inputStream);  
}  
WebUtils.printAsString(res, "true");

如果是多个模板, 则处理为 .zip, 所以不能直接读取。

应用资源 com.fr.plugin.wysiwyg.preview.jxbrowser.jscalljava.JSCallJavaBridgeHelper#applyReuseResource2Tpl

fvs zip 逻辑 com.fr.plugin.wysiwyg.io.sync.ZipSyncUtils#doZip2Cache (java.lang.String, java.lang.String, java.lang.String)

生成组件 com.fr.plugin.wysiwyg.web.controller.DuchampReuseRequestService#generateReuseWidget