【实习之velocity】

news2024/11/29 12:47:00

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、图示
  • 二、应用场景
    • 1.Web应用程序:作为为应用程序的视图,显示数据
    • 2.源代码生成:Velocity可用于基于模板生成java源代码
    • 3.自动电子邮件:网站注册,认证等的电子邮件模板
    • 4.网页静态化:基于Velocity模板,生成静态网页
  • 三、velocity组成结构
    • Velocity与JSP区别
  • 四、Velocity 创建步骤
  • 五、Velocity的基础语法
    • 1.VTL介绍


前言

Velocity是一个基于Java的模板引擎,可通过指定语法获取在java对象的数据,填充到模板中,从而实现代码与界面的分离!


提示:以下是本篇文章正文内容,下面案例可供参考

一、图示

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、应用场景

1.Web应用程序:作为为应用程序的视图,显示数据

2.源代码生成:Velocity可用于基于模板生成java源代码

3.自动电子邮件:网站注册,认证等的电子邮件模板

4.网页静态化:基于Velocity模板,生成静态网页

三、velocity组成结构

在这里插入图片描述

1.velocity主要分为app. context.runtime和一些辅助util几个部分。
app模块:主要封装了一些接口,暴露给使用者使用。主要有两个类,分别是Velocity(单例)和VelocityEngine。- Context模块:主要封装了模板渲染需要的变量
Runtime模块:整个Velocity的核心模块,Runtime模块会将加载的模板解析成语法树,Velocityi调用mergeTemplate方法时会渲染整棵树。并输出最终的渲染结果。
 Runtimelnstance类为整个Velocity渲染提供了一个单例模式,拿到了这个实例就可以完成渲染过程了。

Velocity与JSP区别

JSP 与 velocity 都是模板容器 ,但是jsp可以书写java HTML  与自己的jsp语法 但是没有实现数据与模板的分离遇到大型项目时导致 难以维护 Velocity是数据与模板的分离

四、Velocity 创建步骤

在这里插入图片描述

在这个步骤中其实也就 模板、路径、输出内容会变化

五、Velocity的基础语法

1.VTL介绍

velocity Template Language (VTL),是Velocity 中提供的一种模版语言,旨在提供最简单和最干净的方法来将动态内容合并到网页中。简单来说VTL可以将程序中的动态数展示到网页中
VTL的语句分为4大类:注释,非解析内容,引用和指令。

** 注释**
语法:
## 行注释
#* 块注释*#
#** 文档注释*#
** 非解析内容 ** 语法: #[[ ]]#
** 引用**

1变量引用:
引用语句就是对引擎上下文对象中的属性进行操作。语法方面分为常规语法( 属 性 ) 和 正 规 语 法 ( 属性)和正规语法( )({属性})。

语法
变 量 名 , 若 上 下 文 中 没 有 对 应 的 变 量 , 则 输 出 字 符 串 " 变量名,若上下文中没有对应的变量,则输出字符串" "变量名"
变 量 名 , 若 上 下 文 中 没 有 对 应 的 变 量 , 则 输 出 字 符 串 " {变量名},若上下文中没有对应的变量,则输出字符串" ,"{变量名}"
$!变量名,若上下文中没有对应的变量,则输出空字符串""
$! {变量名},若上下文中没有对应的变量,则输出空字符串""

2属性引用:
#{对象.属性}
3.方法引用:
$变量名.方法([入参1[,入参2]]?),常规写法
${变量名.方法([入参1[,入参2]
]?)},正规写法
$!变量名.方法([入参1[,入参2]]?),常规写法
$!{变量名.方法([入参1[,入参2]
]?)},正规写法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/49149.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[c++基础]-vector类

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正。 目录 一、 vect…

scanf导致程序运行时出现stack smashing

一 栈溢出stack smashing 程序在运行期间破坏了已在操作系统里定义好的栈边界&#xff0c;这种行为具有破坏性&#xff0c;操作系统使用stack smashing detect机制来检测栈溢出。 二 栈溢出简单例子 实例一&#xff1a; #include <stdio.h> #include <stdlib.h>…

基于智能优化算法实现的机械臂避障路径规划(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 针对目前空间机械臂避障路径规划算法计算量大难以达到在线实时规划的缺点,对空间机械臂的在线实时避障路径规划问题进行了研究和…

计算机四级网络-网络技术-第六章 网络管理与网络安全

6.1 网络管理技术 CMIP 采用委托监控机制。 CMIP协议是由IS0组织制定的一种管理协议。管理进程根据事件发生时对网络服务影响的大小来划分事件的严重等级&#xff0c;然后再产生相应的故障处理方案。CMIP的所有功能都要映射到应用层的相关协议上实现。操作和事件报告是通过远…

如何使用腾讯会议录屏?腾讯会议不允许录屏怎么办?这个方法教你解决

​近年来&#xff0c;线上活动越来越活跃&#xff0c;很多人都开始使用腾讯会议进行开会、网课教学等活动。很多人希望使用腾讯会议进行录屏。那么如何使用腾讯会议录屏&#xff1f;腾讯会议不允许录屏怎么办&#xff1f;这个方法教你解决&#xff01; 一、如何使用腾讯会议录屏…

计算机组成原理习题课第三章-5(唐朔飞)

计算机组成原理习题课第三章-5&#xff08;唐朔飞&#xff09; ✨欢迎关注&#x1f5b1;点赞&#x1f380;收藏⭐留言✒ &#x1f52e;本文由京与旧铺原创&#xff0c;csdn首发&#xff01; &#x1f618;系列专栏&#xff1a;java学习 &#x1f4bb;首发时间&#xff1a;&…

[ElasticSearch]-初识Elastic Stack

[ElasticSearch]-初识Elastic Stack 森格 | 2022年11月 本文是第一次接触Elasticsearch的一些个人总结&#xff0c;介绍了Elastic Stack&#xff0c;如有错误之处&#xff0c;敬请指正。 一、ELK 到 Elastic Stack 注&#xff1a;上图来源于Elasticsearch中文博客 ELK分别是Ela…

PyTorch深度学习笔记之五(使用神经网络拟合数据)

使用神经网络拟合数据 1. 人工神经网络 1.1 神经网络和神经元 神经网络&#xff1a;一种通过简单函数的组合来表示复杂函数的数学实体。 人工神经网络和生理神经网络似乎都使用模糊相似的数学策略来逼近复杂的函数&#xff0c;因为这类策略非常有效。 这些复杂函数的基本构…

多线程轮流打印

一、背景 面试的时候&#xff0c;有一个高频的笔试题&#xff1a; 让2个线程轮流打印&#xff0c;a线程是打印ABCDEFGHIJ&#xff0c;b线程是打印1、2、3、4、5、6、7、8、9、10 二、原理 这种类型的面试题&#xff0c;主要是考察object的wait()方法和notify()方法的使用 …

spring整合Mybatis-P23,24,25

复习Mybatis&#xff08;都是之前的内容&#xff0c;不再解释&#xff09; 6个需要修改或创建的文件 UserMapper package com.Li.mapper;import com.Li.pojo.User;import java.util.List;public interface UserMapper {public List<User> selectUser(); }UserMapper.xm…

如何全面提升架构设计的质量

低成本 低成本本质上是对架构的一种约束&#xff0c;与高性能等架构是冲突的 手段和应用 先设计架构方案&#xff0c;再看如何降低成本 优化 引入缓存虚拟化、容器化性能调优采用高性能硬件采用开源方案 创新 NoSQL vs SQLSQL vs 倒排索引Hadoop vs MySQL 安全性 复杂…

《码出高效:Java开发手册》 四-走进JVM

前言 JVM是java中底层的知识&#xff0c;这里的内容比较复杂&#xff0c;对于一些软件编程&#xff0c;会经常使用&#xff0c;但很多业务其实碰不到这里的知识&#xff0c;下图为目录 介绍 JVM&#xff0c;java虚拟机&#xff0c;它的前身是99年的hotspot java虚拟机&…

vue 计算属性未重新计算 / computed 未触发 / computed 原理源码分析

点击可打开demo 这里在一秒后改了数组里value属性的值 虽然数据有更新&#xff0c;但打开控制台&#xff0c;可以发现computed函数只在初始化时执行了一次 按理说一秒后改变了value值&#xff0c;应该执行两次才对呀&#xff1f; 但如果computed属性这样写&#xff0c;明确写…

数据分析之大数据分析

一 什么是大数据分析 大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据的特点可以概括为5个V&#xff1a;数据量大&…

当湿度达到70蜂鸣器警报

1.编写设备树&#xff0c;添加蜂鸣器等设备 驱动代码&#xff1a; #include <linux/init.h> #include <linux/module.h> #include <linux/i2c.h> #include <linux/fs.h> #include <linux/uaccess.h> #include <linux/device.h> #include …

QCSPCChart for Java R3x0 Crack

Java 的 SPC 控制图工具 版本 3.04 QCSPCChart添加变量控制图&#xff08;X-Bar R、X-Bar Sigma、Individual Range、Median Range、EWMA、MA、MAMR、MAMS 和 CuSum 图&#xff09;、属性控制图&#xff08;p-、np-、c-、u- 和DPMO 图&#xff09;、频率直方图和 Pareto 图到…

[附源码]Python计算机毕业设计Django的旅游景点管理系统的设计与实现

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

[附源码]Python计算机毕业设计SSM老年公寓管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

计算机编程

文章目录计算机编程计算机编程语言计算机编程 人与人之间信息&#xff08;如想法、思想等&#xff09;的交流和传递&#xff0c;需要借助双方都能听得懂的语言。人和计算机之间实现交流也是如此&#xff0c;需要借助一种人和计算机都能理解的语言&#xff0c;这种语言称为编程…

LCHub低代码社区:旧的低代码,腾讯怎么讲出新故事

腾讯微搭的对手从来都不是钉钉。 低代码是 " 旧瓶装新酒 " 吗? 低代码风潮在国内兴盛已有两年,但也并不是已经被所有人接受,有不少开发者还保有否定、抵触的态度。 那为什么我们还认为这是一个不可逆的趋势呢? 这里先看下被否定的原因,LCHub在调研中听到的主…