Velocity是一种Java模版引擎技术,该项目由Apache提出。因为非常好用,和工作中有啥用,所以我在在理简单的入门一下。

网上找了很多教程,写的不是很明白,要么就是全部拷贝下来时候运行不起来。

在这里我来写一份比较完成的配置 struts2 + Velocity的。相信能用到这个模板引擎的人,对 struts都会有一定的了解,这里就不细说了。

第一步:

导入包

-- velocity-1.7.jar

-- velocity-tools-1.4.jar

第二步:

web.xml 因为这里是用的struts2 所以写入的是它的配置

 <filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>

第三步:struts.xml 这里其实并没有写其他的,只是用struts的动态方法进行调用。

通过制定type = "velocity" 确定返回的页面的类型。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 动态方法调用打开,可以通过感叹号调用action里面的方法 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" /> <package name="default" extends="struts-default" namespace="/">
<!-- to welPage -->
<action name="*" class="com.ape.action.{1}Action">
<result type="velocity">/{1}.vm</result>
</action>
</package>
</struts>

第四步:TestAction.java

注意:这里如果要在Vm页面进行输入变量,要将变量进行get set 封装下。不然输出不了

package com.ape.action;

import com.opensymphony.xwork2.ActionSupport;

public class TestAction extends ActionSupport {  

    /**
*
*/
private static final long serialVersionUID = 9061932498262928875L;
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String test() {
name = "Hello";
return SUCCESS;
} }

第六步:Test.vm

<html>
<head>
<title>Insert title here</title>
</head>
<body>
#set($world="world")
${name}-${world}
</body>
</html>

代码完毕:访问:http://localhost:8080/VelocityS/Test!test.action

源码:http://pan.baidu.com/s/1nv0Aevv

Velocity 入门(一)的更多相关文章

  1. Velocity入门系列

    Velocity介绍 Velocity是一个java模板引擎,通过简洁的语法可以返回动态内容给浏览器使用,本系类是基于velocity官方文档(就是照着翻译,同时对不清楚的地方进行详细讲解),其实技术 ...

  2. velocity入门

    http://wenku.baidu.com/view/b401add728ea81c758f57882.html?re=view package cn.edu; import java.io.Fil ...

  3. Velocity魔法堂系列一:入门示例

    一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不 ...

  4. Velocity魔法堂系列一:入门示例(转)

    Velocity魔法堂系列一:入门示例 一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本 ...

  5. Velocity脚本入门教程

    下面资料整理自网络 一.Velocity介绍 Velocity是Apache公司的开源产品,是一套基于Java语言的模板引擎,可以很灵活的将后台数据对象与模板文件结合在一起,说的直白一点,就是允许任何 ...

  6. Velocity快速入门教程-脚本语法详解(转)

    1.变量 (1)变量的定义: #set($name = "hello")      说明:velocity中变量是弱类型的. 当使用#set 指令时,括在双引号中的字面字符串将解析 ...

  7. Velocity模板引擎入门

    类似于PHP中的Smarty,Velocity是一个基于Java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代 ...

  8. Velocity(1)——初步入门

    1.变量 (1)变量的定义: 1 #set($name = "hello") 说明:velocity中变量是弱类型的. 2 3 当使用#set 指令时,括在双引号中的字面字符串将解 ...

  9. Velocity快速入门

    Velocity 介绍 Velocity是一个基于java的模板引擎.它允许任何人使用简单但功能强大的模板语言引用Java代码中定义的对象. 当Velocity用于web开发时,web设计人员可以与J ...

随机推荐

  1. Xcode6 运行程序后,右侧Debug区域的Memory显示空白解决方法

    http://chenyh-blog.com/%E8%9B%8B%E7%96%BC%E7%9A%84%E5%86%85%E5%AD%98-%E7%AC%AC%E4%B8%89%E7%AF%87-sdw ...

  2. WCF大数据量传输配置

    WCF传输数据量的能力受到许多因素的制约,如果程序中出现因需要传输的数据量较大而导致调用WCF服务失败的问题,应注意以下配置: 1.MaxReceivedMessageSize:获取或设置配置了此绑定 ...

  3. [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.2.2

    Show that the following statements are equivalent: (1). $A$ is positive. (2). $A=B^*B$ for some $B$. ...

  4. Apk修改利器:ApkToolkit v2.1

    作 者: Mzucore 时 间: 2013-05-10, 17:18:23 链 接: http://www.unpack.cn/thread-93058-1-1.html 下载地址:http://b ...

  5. c++ 派生类向基类转换的可访问性

    对于c++面向对象一直很疑惑,这次决定下功夫把它弄明白 一.派生类和基类之间的类型转换 首先理解,派生类含有基类的所有成分,只不过有些就算在派生类的成员函数也不能访问而已. (1)派生类和基类的自动转 ...

  6. Esper系列(二)时间窗口、长度窗口、cast、注解、自定义函数、静态方法

    长度窗口实现原理图 说明: 上图长度窗口为5,事件W1至W5进入引擎后属于NewEvents队列,事件W6进入引擎后,W2至W6就属于NewEvents队列,而事件W1就属于OldEvents队列了. ...

  7. HW3.27

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  8. (android 源码下开发应用程序) 如何在 Android 各 level ( 包含 user space 與 kernel space ) 使用dump call stack的方法

    http://janbarry0914.blogspot.com/2014/07/androiddump-call-stack.html dump call stack [文章重點] 了解 Andro ...

  9. SQLite数据库如何存储和读取二进制数据

    SQLite数据库如何存储和读取二进制数据 1. 存储二进制数据 SQLite提供的绑定二进制参数接口函数为: int sqlite3_bind_blob(sqlite3_stmt*, int, co ...

  10. 非刚性图像配准 matlab简单示例 demons算法

    2011-05-25 17:21 非刚性图像配准 matlab简单示例 demons算法, % Clean clc; clear all; close all; % Compile the mex f ...