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引入依赖

<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>

测试:

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值