实现页面静态化(模型数据+模板=静态化)

博客提及模型数据、模型页面以及页面静态化等内容,聚焦于信息技术中模型相关数据处理和页面静态化技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模型数据

//1.获取页面模型数据
    private Map getModelByPageId(String pageId){
        CmsPage cmsPage = findById(pageId);
        if (cmsPage==null){
            //页面不存在
            ExceptionCast.cast(CmsCode.CMS_PAGE_NOTEXISTS);
        }
        String dataUrl = cmsPage.getDataUrl();
        if (StringUtils.isEmpty(dataUrl)){
            ExceptionCast.cast(CmsCode.CMS_GENERATEHTML_DATAURLISNULL);
        }
        ResponseEntity<Map> forEntity = restTemplate.getForEntity(dataUrl, Map.class);
        Map body = forEntity.getBody();
            return body;
    }

模型页面

//2、获取页面模板
            public String getTemplateByPageId(String pageId){
                CmsPage cmsPage = findById(pageId);
                if (cmsPage==null){
                    ExceptionCast.cast(CmsCode.CMS_PAGE_NOTEXISTS);
                }
                //拿到cms_page的teplateId
                String templateId = cmsPage.getTemplateId();
                //根据cmstemplate来拿到files_id
                Optional<CmsTemplate> optional = cmsTemplateRepository.findById(templateId);
                if (optional.isPresent()){
                    CmsTemplate cmsTemplate = optional.get();
                    String templateFileId = cmsTemplate.getTemplateFileId();
                    //取出模板文件内容
                    GridFSFile gridFSFile = gridFsTemplate.findOne(Query.query(Criteria.where("_id").is(templateFileId)));
                    //打开下载流对象
                    GridFSDownloadStream gridFSDownloadStream = gridFSBucket.openDownloadStream(gridFSFile.getObjectId());
                    //获取流对象
                    GridFsResource gridFsResource = new GridFsResource(gridFSFile, gridFSDownloadStream);
                   // 获取流中的数据
                    try {
                        String  content = IOUtils.toString(gridFsResource.getInputStream(), "UTF-8");
                        return content;
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                return null;
            }

页面静态化

//3.页面静态化
public String generateHtml(String template,Map model){
    try {
    //生成配置类
    Configuration configuration = new Configuration(Configuration.getVersion());
    //模板加载器
    StringTemplateLoader stringTemplateLoader = new StringTemplateLoader();
    stringTemplateLoader.putTemplate("template",template);
    //配置模板加载器
    configuration.setTemplateLoader(stringTemplateLoader);
    Template template1 = configuration.getTemplate("template");
    String html = FreeMarkerTemplateUtils.processTemplateIntoString(template1, model);
    return html;
}catch (Exception e) {
    e.printStackTrace();
} return null;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值