BeetlUtil.class

<!--
    Beetl是一款高性能的HTML模板渲染引擎
    另外需要注意,模板引擎在渲染完成页面后,是不会执行页面中的JS代码的
    因此,如果后台想要将HTML模板转成Pdf,就不要想着用JS来改变HTML元素了
-->
<dependencies>
    <dependency>
        <groupId>com.ibeetl</groupId>
        <artifactId>beetl</artifactId>
        <version>2.7.21</version>
    </dependency>
</dependencies>
import org.beetl.core.Configuration;
import org.beetl.core.GroupTemplate;
import org.beetl.core.Template;
import org.beetl.core.resource.ClasspathResourceLoader;

import java.io.IOException;
import java.util.Map;

/**
 * Description of this class.
 *
 * @author NightDW 2022/2/26 0:23
 */
@SuppressWarnings("All")
public class BeetlUtil {

    private static final GroupTemplate GROUP_TEMPLATE;
    static {
        try {
            GROUP_TEMPLATE = new GroupTemplate(new ClasspathResourceLoader(), Configuration.defaultConfiguration());
        } catch (IOException e) {
            throw new RuntimeException("BeetlUtil初始化失败!");
        }
    }

    public static String renderHtmlTemplateFromClassPath(String path, Map<String, Object> param) {
        Template template = GROUP_TEMPLATE.getTemplate(path);
        template.binding(param);
        return template.render();
    }

    public static String renderHtmlTemplateFromClassPath(String path, String key, Object value) {
        Template template = GROUP_TEMPLATE.getTemplate(path);
        template.binding(key, value);
        return template.render();
    }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>学生二维码</title>
</head>
<body>
<!--
    Beetl的语法如下所示,代码写在<%%>标签的中间
    departmentList参数是由Java代码传到本模板的
    在这里我们对departmentList进行遍历,在遍历的过程中对HTML文本进行拼接
    调用print(str)方法,Beetl将会将目标文本str渲染到最终的HTML页面中
-->
<%
    for (department in departmentList) {
        var departmentContainerStr = "";
        departmentContainerStr = departmentContainerStr + "<div class='department-container'>";
        departmentContainerStr = departmentContainerStr + "<h3>" + department.name + "</h3><hr/>";
        for (student in department.userList) {
            departmentContainerStr = departmentContainerStr + "<div class='qrCodeFrame'>";
            departmentContainerStr = departmentContainerStr + "<div class='code'><" + "img width='110' height='110' src='data:image/png;base64," + student.qrCodeBase64 + "' style='display: block;'/></div><br/><div class='name'>[学生] " + student.name + "</div><br/><div class='clazz'>班级:" + student.className + "</div><br/><div class='phone'>学号:" + student.studentCode + "</div>";
            departmentContainerStr = departmentContainerStr + "</div>";
        }
        departmentContainerStr = departmentContainerStr + "</div>";
        print(departmentContainerStr);
    }
%>
</body>
</html>
全部评论

相关推荐

政委qqq:这道题在算法竞赛里唯一考的就是高精度,但是只能难住C++这类语言,Python直接a+b秒天秒地
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务