什么是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/engine/2.3/vtl-reference.html#ifelseifelse-output-conditional-on-truth-of-statements
API:
https://velocity.apache/engine/2.0/apidocs/org/apache/velocity/Template.html
pom引入依赖
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
一、html里面常用语法:
1、取值
$!{name}
2、if条件判断
只要再html页面内,都可以写语句,要记得结尾
## 根据结果参数不同去展示不通的内容和样式
## 两个井号是注释符号
<td
#if($!{result}==0) class="blue" #else class="red" #end>
#if($!{result}==0)
通过
#else
失败
#end
</td>
3、计算、赋值
假设我么需要对值进行计算或赋值
需要先用赋值#set()赋值操作去计算
如我们需要对后台list数量加1,如下
## 错误的写法:他没法判断你的值类型,你直接后面+1他就当成是字符串拼接了
<th rowspan="$list.size+1">姓名</th>
## 正确的写法:
<th #set($len= $list.size+1) rowspan="$len">姓名</th>
4、循环:
#foreach($item in $list)
$item.name
$item.age
#end
获取循环的序号 $velocityCount
二、 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();
}
}
}
demo.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Insert title here</title>
<style>
h2 {
color: red;
}
</style>
</head>
<body>
<h1>表格测试</h1>
<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>身高</th>
</tr>
<tr>
<td>$!{name}</td>
<td>$!{age}</td>
<td>$!{length}</td>
</tr>
</table>
</body>
<script>
</script>
</html>
测试:
更多推荐
velocity简单入门
发布评论