velocity的学习

本文介绍了一个使用Java和Velocity模板引擎的简单示例。通过创建一个包含数据模型和模板文件的小型应用程序,演示了如何将数据填充到模板中并生成最终的输出。此示例涉及的主要概念包括VelocityEngine配置、VelocityContext的使用以及模板合并。


package main.java;

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;

import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Properties;

/**
 * Created by kodulf on 2017/2/25.
 */
public class MyTest {
    public static void main(String[] args){
        VelocityEngine ve = new VelocityEngine();
        Properties p = new Properties();
        p.put(Velocity.FILE_RESOURCE_LOADER_PATH,"/Users/kodulf/500mi/VoleCityDemo/src/main/java");
        ve.init(p);

        Template template = ve.getTemplate("my.vm");
        VelocityContext vc = new VelocityContext();

        //有点像是http请求的样子
        vc.put("name","零零漆");
        vc.put("response","yes, 是的");

        ArrayList<String> list = new ArrayList<>();
        list.add("第一年1000万人民币利润");
        list.add("第二年10个亿人民币利润");
        list.add("第三年1000亿人民币利润");
        vc.put("list",list);

        StringWriter sw = new StringWriter();
        template.merge(vc,sw);


        //其实这个ve就相当于是c语言里面的printf(%f,%d)这样的,
        System.out.println(sw.toString());

    }
}


my.vm:

hello world, my name is ${name}, I and the best of all;
Good luck!
I will get 1000000 dollars this year;
${response}
My company will grow very quick
#foreach($i in $list)
$i
#end



基于径向基函数神经网络RBFNN的自适应滑模控制学习(Matlab代码实现)内容概要:本文介绍了基于径向基函数神经网络(RBFNN)的自适应滑模控制方法,并提供了相应的Matlab代码实现。该方法结合了RBF神经网络的非线性逼近能力和滑模控制的强鲁棒性,用于解决复杂系统的控制问题,尤其适用于存在不确定性和外部干扰的动态系统。文中详细阐述了控制算法的设计思路、RBFNN的结构与权重更新机制、滑模面的构建以及自适应律的推导过程,并通过Matlab仿真验证了所提方法的有效性和稳定性。此外,文档还列举了大量相关的科研方向和技术应用,涵盖智能优化算法、机器学习、电力系统、路径规划等多个领域,展示了该技术的广泛应用前景。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的研究生、科研人员及工程技术人员,特别是从事智能控制、非线性系统控制及相关领域的研究人员; 使用场景及目标:①学习和掌握RBF神经网络与滑模控制相结合的自适应控制策略设计方法;②应用于电机控制、机器人轨迹跟踪、电力电子系统等存在模型不确定性或外界扰动的实际控制系统中,提升控制精度与鲁棒性; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,深入理解算法实现细节,同时可参考文中提及的相关技术方向拓展研究思路,注重理论分析与仿真验证相结合。
Velocity 是一款轻量级的模板引擎,适用于动态网站构建、代码生成、邮件模板处理等场景。它通过模板与数据的结合,生成最终的输出内容。下面将从基础使用到示例逐步介绍 Velocity 的使用方式。 ### 基础概念 Velocity 模板引擎主要由以下几个核心组件构成: - **VelocityEngine**:代表整个 Velocity 引擎,用于配置模板加载路径、编码等参数。 - **RuntimeInstance**:提供模板渲染的单例接口,是模板渲染过程的核心入口。 - **Context**:用于存放模板中需要使用的变量,供模板引用。 - **模板文件**:以 `.vm` 为扩展名的文本文件,包含静态内容和动态变量。 ### 环境准备 使用 Velocity 需要引入其核心依赖。如果使用 Maven 构建项目,可以在 `pom.xml` 中添加以下依赖: ```xml <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency> ``` ### 快速入门示例 以下是一个简单的 Velocity 模板使用示例: #### 1. 创建模板文件 在 `resources` 目录下创建一个名为 `hello.vm` 的模板文件,内容如下: ```velocity Hello, $name! Today is $date. ``` #### 2. Java 代码实现 编写 Java 代码加载模板并渲染输出: ```java import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; import org.apache.velocity.app.VelocityEngine; import java.io.StringWriter; public class VelocityExample { public static void main(String[] args) { // 初始化引擎 VelocityEngine velocityEngine = new VelocityEngine(); velocityEngine.setProperty("resource.loader", "class"); velocityEngine.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); velocityEngine.init(); // 加载模板 Template template = velocityEngine.getTemplate("hello.vm"); // 创建上下文并添加变量 VelocityContext context = new VelocityContext(); context.put("name", "World"); context.put("date", new java.util.Date()); // 渲染输出 StringWriter writer = new StringWriter(); template.merge(context, writer); System.out.println(writer.toString()); } } ``` 运行以上代码,输出如下内容: ``` Hello, World! Today is Thu Oct 31 00:00:00 CST 2024. ``` ### 模板语法简介 Velocity 使用 `$` 符号来引用变量,并支持条件判断、循环等逻辑控制结构。 #### 变量引用 ```velocity $name ``` #### 条件判断 ```velocity #if($name == "World") Hello World! #else Hello $name! #end ``` #### 循环结构 ```velocity #foreach($item in $list) $item #end ``` ### 高级用法:自定义指令与工具类 Velocity 支持通过插件机制扩展模板功能,例如自定义指令或工具类。可以通过实现 `org.apache.velocity.runtime.directive.Directive` 接口来创建自定义指令,或者通过 `Context` 注入工具类来增强模板的处理能力。 ### 总结 通过上述示例,可以掌握 Velocity 模板引擎的基本使用方法。它不仅适用于简单的文本生成,还能灵活应对复杂的业务逻辑需求。在实际项目中,可以结合 Spring Boot 等框架进行集成开发,提高开发效率 [^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值