当前位置: 首页 > news >正文

李静做的化妆品网站/网页优化方案

李静做的化妆品网站,网页优化方案,做问卷调查的网站有啥,网站建设方案图Velocity 简明教程 简介 Velocity在Apache官网地址:velocity.apache.org/ Velocity是一个基于Java的模板引擎。它允许任何人使用简单而强大的模板语言来引用Java代码中定义的对象。 作为一个模块引擎,Velocity可以用作品前后端分离的MVC展现层&#xff0…

Velocity 简明教程

简介

Velocity在Apache官网地址:velocity.apache.org/ Velocity是一个基于Java的模板引擎。它允许任何人使用简单而强大的模板语言来引用Java代码中定义的对象。

作为一个模块引擎,Velocity可以用作品前后端分离的MVC展现层,也可以用来生成SQL、 PostScript、XML等。

程序基本用法

    Velocity.init();VelocityContext context = new VelocityContext();context.put("name", "Velocity");Template template = null;try {template = Velocity.getTemplate("mytemplate.vm");} catch( ResourceNotFoundException e ) {// couldn't find the template} catch( ParseErrorException pee ) {// syntax error: problem parsing the template} catch( MethodInvocationException mie ) {// something invoked in the template// threw an exception} catch( Exception e ) {}StringWriter sw = new StringWriter();template.merge(context, sw);//Properties props = new Properties();props.load(this.getClass().getResourceAsStream("/vm.properties"));VelocityEngine ve = new VelocityEngine(props);ve.init();}
复制代码

模板基本语法

变量

使用符声明变量,可以声明变量也可以对变量进行赋值(变量是弱类型的)。还可以使用取出在VelocityContext容器中存放的值。

#set($name =“velocity”)
#set($foo.name = $bar.name)
#set($foo.name = $bar.getName($arg))
#set($foo = 123)
#set($foo = [“foo”,$bar])
复制代码

变量的使用
在模板文件中使用name 或者{name} 来使用定义的变量。推荐使用 ${name} 这种格式,

循环

在Velocity中可以使用循环语法遍历集合,语法结构如下:

#foreach($item in $list)$item$velocityCount 
#end
复制代码

Velocity会创建一个 $velocityCount 的变量作为计数,从 1 开始,每次循环都会加 1。

条件控制语法

在Velocity中可以使用条件语法对流程进行控制

#if(condition)
...dosonmething...
#elseif(condition)
...dosomething...
#else
...dosomething...
#end
复制代码

关系操作符

Velocity 引擎提供了 AND、OR 和 NOT 操作符,分别对应&&、||和! 例如:

#if($foo && $bar)
#end
复制代码

Velocity 中的宏可以理解为函数定义。定义的语法如下:

#macro(macroName arg1 arg2 …)
...
#end
复制代码

调用这个宏的语法是:

#macroName(arg1 arg2 …)
复制代码

这里的参数之间使用空格隔开,下面是定义和使用 Velocity 宏的例子:

#macro(sayHello $name)
hello $name
#end
#sayHello(“velocity”)
复制代码

输出的结果为 hello velocity

#parse 和 #include

#parse 和 #include 指令的功能都是在外部引用文件,而两者的区别是,#parse 会将引用的内容当成类似于源码文件,会将内容在引入的地方进行解析,#include 是将引入文件当成资源文件,会将引入内容原封不动地以文本输出。分别看以下例子:

foo.vm 文件:

#set($name =“velocity”)
复制代码

include.vm:

#include(“foo.vm”)
复制代码

输出结果为:#set($name =“velocity”)

parse.vm:

#parse(“foo.vm”)
复制代码

输出结果为:velocity

在web项目中使用Velocity

velocity只是一个模板引擎,在web项目中使用Velocity还得添加一个HTTP框架来处理请求和转发,apache提供了velocity-tools,其提供了VelocityViewServlet,也可继承VelocityViewServlet,从而实现自己的HTTP框架 一般都是继承VelocityViewServlet,重写handleRequest方法,在其中存入公共的参数.

通过继承或直接使用VelocityViewServlet,可以在管理的vm文件中获得request、session与application对象,也可以直接获取在这几个域对象中保存的值,获取的顺序与EL表达式获取的顺序类似: {request} -->{session} --> {application} 比如{testArr},获取testArr属性,velocity会在velocity的context中寻找。没找到在request域中找,没找到在session中找.

下面将通过实例的方式讲解如何在web项目中使用Velocity 首先引入velocity-tools及其依赖的相关jar包,然后分为如下4步:

继承VelocityViewServlet

通过继承VelocityViewServlet重写handleRequest方法,可以自定义转发规则

public class MyVelocityViewServlet extends VelocityViewServlet {@Overrideprotected Template handleRequest(HttpServletRequest request, HttpServletResponse response, Context ctx) {// 往Context容器存放变量ctx.put("fullName","lixiaolin");// 也可以往request域中存值request.setAttribute("anotherName","xlli");// forward到指定模板return getTemplate("test.vm");}
}
复制代码

配置web.xml

对自定义的VelocityViewServlet配置就像配置普通的Servlet一样,如下:

<servlet><servlet-name>MyVelocityServlet</servlet-name><servlet-class>com.lxl.velocity.MyVelocityViewServlet</servlet-class>
</servlet>
<servlet-mapping><servlet-name>MyVelocityServlet</servlet-name><url-pattern>/servlet/myVelocityServlet</url-pattern>
</servlet-mapping>
复制代码

参考

  • velocity.apache.org/engine/2.0/…
  • www.ibm.com/developerwo…
http://www.lbrq.cn/news/938179.html

相关文章:

  • 宠王爷斗皇子我家王妃帅爆了/网站搜索优化价格
  • 上海松江做网站的公司/企业推广平台有哪些
  • 家用电脑和宽带做网站/torrentkitty磁力天堂
  • 洛阳市住房建设委员会网站/网络市场调研的方法
  • 免费html5网站源码/合肥网络营销公司
  • 网站建设用几级域名合适/广告推广计划
  • 用dw做网站的空格怎么打/seo产品推广
  • 大连网站建设优化/全网关键词云在哪里看
  • 如何提升网站的收录量/营销型网站建设解决方案
  • 北京 响应式网站建设/市场调研报告500字
  • wordpress keywords插件/专业seo培训
  • 无锡网站建设开发/软文写作平台发稿
  • 软件著作权转让/seo外贸推广
  • 一家专门做灯的网站/新闻头条今天最新消息
  • 用axure做网站原型的尺寸/免费seo教程资源
  • b站视频推广的方法有哪些/西安网络公司
  • 十里堡网站建设/系统优化软件
  • 做网站的一个月能赚多少钱/重庆百度快照优化排名
  • wordpress电影网站主题/线上商城推广软文
  • 罗湖网站建设深圳信科/宣城网站seo
  • 济宁网站开发招聘/班级优化大师的功能有哪些
  • 怎样做网站平台赚钱吗/西安网站优化培训
  • 合肥最好的网站建设公司排名/网站域名查询ip地址
  • 程序开发的难点/太原搜索引擎优化
  • 如何用网站首页做404/自己的网站怎么建立
  • wordpress戏/长清区seo网络优化软件
  • 公司公共邮箱怎么申请/seo解释
  • 网站url在哪优化/seo国外英文论坛
  • 彩票网站建设平台/什么是信息流广告
  • 西安做行业平台网站的公司/百度网盘帐号登录入口
  • 【前端】【vscode】【.vscode/settings.json】为单个项目配置自动格式化和开发环境
  • 【设计】设计一个web版的数据库管理平台后端(之二)
  • 对比JS“上下文”与“作用域”
  • 变频器实习DAY15
  • 【影刀RPA_初级课程_我的第一个机器人】
  • 大模型应用班-第2课 DeepSeek使用与提示词工程课程重点 学习ollama 安装 用deepseek-r1:1.5b 分析PDF 内容