• velocity简单入门


    什么是velocity

    Velocity 是一个基于 Java 的模板引擎。它允许任何人使用简单而强大的模板语言来引用 Java 代码中定义的对象。

    当 Velocity 用于 Web 开发时,Web 设计人员可以与 Java 程序员并行工作,根据
    Model-View-Controller (MVC)
    模型开发网站,这意味着网页设计人员可以只专注于创建一个看起来不错的网站,程序员可以只专注于编写一流的代码。Velocity 将 Java
    代码与网页分离,使网站在其生命周期内更易于维护,并为Java 服务器页面(JSP) 或PHP提供了可行的替代方案。

    Velocity 的功能远远超出了网络领域;例如,它可用于从模板生成 SQL、PostScript 和
    XML。它既可以用作生成源代码和报告的独立实用程序,也可以用作其他系统的集成组件。例如,Velocity 为各种 Web
    框架提供模板服务,使它们具有视图引擎,便于根据真正的 MVC 模型开发 Web 应用程序。

    其他

    展示层有JSP、freemaker和velocity。
    velocity官方文档:https://velocity.apache.org/engine/2.3/vtl-reference.html#ifelseifelse-output-conditional-on-truth-of-statements

    API:
    https://velocity.apache.org/engine/2.0/apidocs/org/apache/velocity/Template.html

    pom引入依赖

    
        org.apache.velocity
        velocity
        1.7
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    一、html里面常用语法:

    1、取值

    $!{name}
    
    • 1

    2、if条件判断

    只要再html页面内,都可以写语句,要记得结尾

    		## 根据结果参数不同去展示不通的内容和样式
    		## 两个井号是注释符号
            
                #if($!{result}==0)
                通过
                #else
                失败
                #end
            
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3、计算、赋值

    假设我么需要对值进行计算或赋值
    需要先用赋值#set()赋值操作去计算
    如我们需要对后台list数量加1,如下

    ## 错误的写法:他没法判断你的值类型,你直接后面+1他就当成是字符串拼接了
    姓名
    ## 正确的写法:
    姓名
    
    • 1
    • 2
    • 3
    • 4

    4、循环:

     #foreach($item in $list)
     	$item.name
     	$item.age
     #end
    
    获取循环的序号 $velocityCount
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    二、 java后端

    怎么传入参数:

    /**
    * Velocity控制层
    * @author ppp
    * @date 2022/8/4
    */
    @Controller
    @RequestMapping("/velocity")
    public class VelocityController {
    
        @RequestMapping("/get")
        public void get(HttpServletResponse response){
            Velocity.setProperty(RuntimeConstants.OUTPUT_ENCODING, "UTF-8");
            Velocity.setProperty(RuntimeConstants.INPUT_ENCODING, "UTF-8");
            Velocity.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
            Velocity.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
            Velocity.init();
            Template template = Velocity.getTemplate("demo.html", "UTF-8");
            Context context = new VelocityContext();
            response.setContentType("text/html");
            response.setCharacterEncoding("utf-8");
            try(PrintWriter writer = response.getWriter()){
                context.put("name", "张三");
                context.put("age", 25);
                context.put("length", 165);
                template.merge(context,writer);
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    demo.html

    
    
    
        
        Insert title here
        
    
    
    
    

    表格测试

    姓名 年龄 身高
    $!{name} $!{age} $!{length}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    测试:

    在这里插入图片描述

  • 相关阅读:
    TypeScript- 对于对象键名(包括函数键值)不确定的接口,可以使用字符串索引的形式
    Nginx反向代理配置
    mongodb使用x509认证
    进程与线程
    Unity粒子系统ParticleSystem各模块及其参数学习
    Nico,从零开始干掉Appium,移动端自动化测试框架实现
    Wps Excel 如何时间格式化
    Spark面试题系列
    单元测试方法-cmockery实践
    接口测试工具
  • 原文地址:https://blog.csdn.net/qiaodaima0/article/details/126158419