`

velocity基础教程--3用velocity代替jsp作为程序视图展示

阅读更多
用veloctiy代替jsp作为程序视图展示
这里我们需要一个velocity的扩展工具包veloctiy-tools,我们可以在velocity的官方网站中得到。
在web.xml中配置相关的servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<servlet>
		<servlet-name>velocity</servlet-name>
		<servlet-class>
			org.apache.velocity.tools.view.servlet.VelocityViewServlet
		</servlet-class>
		<init-param>
			<param-name>org.apache.velocity.toolbox</param-name>
			<param-value>/WEB-INF/toolbox.xml</param-value>
		</init-param>
		<init-param>
			<param-name>org.apache.velocity.properties</param-name>
			<param-value>/WEB-INF/velocity.properties</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>velocity</servlet-name>
		<url-pattern>*.vm</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

toolbox.xml是实体映射文件后面会有说明
velocity.properties是配置文件
这里仅设置了字符编码
input.encoding=utf-8
output.encoding=utf-8

这里我们创建了一个默认的vm模板文件
VM_global_library.vm 默认放置在web根目录下 放置一些全局的数据

接下来我们创建一个Person类

public class Person {
	private String name;
	private int id;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

PersonService实际处理的对象
import java.util.ArrayList;
import java.util.List;


public class PersonService {
	static private List<Person> PERSONS = new ArrayList<Person>();
	static{
		
		for (int i = 0 ; i<10;i++){
			Person p = new Person();
			p.setId(i);
			p.setAge(i+3);
			p.setName("p_name "+i);
			PERSONS.add(p);
		}
	}
	
	public List<Person> getPersons(){
		return PERSONS;
	}
	public Person getPerson(int id){
		for(int i = 0 ; i<PERSONS.size() ; i++){
			Person p = PERSONS.get(i);
			if(id==p.getId()){
				return p;
			}
		}
		return null;
	}
	public int parseInt(String id){
		return Integer.parseInt(id);
	} 
}


现在再看看我们的映射文件应该可以很明确了
<?xml version="1.0" encoding="UTF-8"?>
<toolbox>
  <data type="string">
     <key>personList</key>
     <value>用户列表</value>
  </data>

  <tool>
     <key>personService</key>
     <scope>request</scope>
     <request-path>/person/*</request-path>
     <class>PersonService</class>
  </tool>
</toolbox>

下面看看我们的两个模板
一个是显示全部 一个是显示单个
persons
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> $personList </TITLE>
 </HEAD>
 <BODY>
  <table>
  	<tr>
  		<td>姓名</td>
  		<td>年龄</td>
  	</tr>
  	#foreach($person in ${personService.getPersons()})
  	<tr>
  		<td><a href="person.vm?id=${person.getId()}">${person.getName()}</a></td>
  		<td>${person.getAge()}</td>
  	<tr>
  	#end
  </table>
 </BODY>
</HTML>

person
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> $personList </TITLE>
 </HEAD>
 <BODY>
 #set ($paramName = $request.getParameter("id"))
 $paramName
  <table>
  	<tr>
  	<td>姓名</td>
  	<td>年龄</td>
  	</tr>
  	#set( $person = ${personService.getPerson($personService.parseInt($paramName))} )
  	<tr>
  		<td>${person.getName()}</td>
  		<td>${person.getAge()}</td>
  	<tr>
  </table>
  
 </BODY>
</HTML>

接下来大家可以看看效果 不过很简陋
有一点令我十分不爽 就是String --> int转换 我自己写得方法
如果有知道更好的希望赐教





这个东西还是很不错的
  • 大小: 18 KB
  • 大小: 8.5 KB
分享到:
评论

相关推荐

    velocity-1.5.jar,velocity-1.6.2-dep.jar,velocity-tools-1.3.jar

    Velocity可以作为视图层的模板引擎,使得开发者可以通过简单的模板语言来生成动态HTML,而无需深入理解复杂的JSP语法。同时,Velocity Tools的附加功能进一步增强了Velocity的实用性。 在实际使用中,开发者需要将...

    velocity jsp多视图解析器整合

    - **InternalResourceViewResolver**: 默认情况下,Spring MVC会使用这个解析器来处理JSP视图。同样,我们需要设置`prefix`和`suffix`,以指定JSP文件的位置。 **4. 配置步骤** - 添加Velocity和Spring MVC的依赖到...

    用WebWork、JSP、Velocity建立注册页面-JSP教程,JspServlet

    ### 使用JSP和Velocity构建视图 在构建注册页面时,可以使用JSP或Velocity模板引擎来创建动态的HTML页面。这里简要介绍这两种技术。 #### JSP (JavaServer Pages) JSP是一种用于创建动态Web页面的标准技术。它允许...

    jsp、freemarker、velocity简介和对比

    ### jsp、freemarker、velocity简介和对比 在Java Web开发领域,模板引擎是连接后端业务逻辑与前端展示层的重要桥梁。本文将重点介绍三种常用的Java Web模板引擎:JSP(Java Server Pages)、Freemarker以及...

    velocity-1.6.zip

    Velocity的语法简洁明了,避免了像JSP那样的视图层的复杂性。 二、核心概念 1. **模板(Template)**:模板是 Velocity 的心脏,它是HTML、XML或其他格式的文本文件,其中包含了可以被 Velocity 替换的指令(如`${}...

    EasyJWeb-Velocity脚本简明教程

    在EasyJWeb中,选择Velocity作为视图技术,主要是因为Velocity在可维护性、简洁性和灵活性方面优于JSP和其他视图技术。Velocity是一个基于Java的模板引擎,它允许开发者使用模板语言来引用由Java代码定义的对象,...

    velocity_lib1.7-jar包

    Velocity通过模板语言,允许开发者用简单的指令来控制页面元素的生成,这些指令可以与Java对象直接交互,无需繁琐的JSP标签或脚本。 二、核心概念 1. 模板(Template):模板是 Velocity 的灵魂,它是静态页面的...

    struts2+Velocity替换jsp项目源码

    通过这个"struts2+Velocity替换jsp项目源码",你可以学习到如何将一个传统的基于JSP的Web应用转换为使用Velocity作为视图层,从而提升项目的可维护性和性能。这是一个很好的实践案例,对于深入理解和掌握Struts2与...

    SpringMVC3+velocity最简单配置例子

    SpringMVC3与Velocity结合是常见的Java Web开发模式,用于构建高效、可维护的Web应用程序。这个最简单的配置例子提供了一个入门级别的演示,帮助开发者快速理解如何整合这两个框架。下面我们将详细探讨SpringMVC3和...

    Jsp结合Velocity实现依据Word模板文件生成对应数据文件

    3. **读取模板文件**:使用Velocity的`ResourceLoader`加载Word模板文件,这通常涉及到文件系统的操作或者使用URL。 4. **填充数据**:在上下文中添加你需要的数据,例如数据库查询结果、服务器配置信息等。 5. **...

    velocity-tools.jar包2.0

    新版本通常会提供更新和更详尽的文档,包括教程、API 文档和示例代码,帮助开发者更快地理解和使用 Velocity Tools。 **9. ** **社区支持和更新** 2.0 版本意味着项目经过了长期的维护和改进,社区支持也更加活跃...

    Apache Velocity - Velocity User Guide

    ”程序,向用户展示如何使用 Velocity 创建第一个模板并输出文本。 #### 七、注释(Comments) 在 Velocity 中添加注释的方法,这些注释不会出现在最终生成的输出中。 #### 八、引用(References) - **变量...

    Velocity学习Web项目

    然后,使用Struts的`ActionForward`来指定Velocity模板作为视图。 例如,Action类中的execute方法可能如下所示: ```java public ActionForward execute(ActionMapping mapping, ActionForm form, ...

    jsp程序设计实用案例教程课件、代码

    **JSP程序设计实用案例教程概述** JSP(JavaServer Pages)是Java平台上的一个用于开发动态网页的技术,它结合了HTML、Java代码和Java标签库,使得开发者可以在服务器端生成和控制网页内容。本教程集是针对JSP程序...

    Spring+SpringMVC+Mybatis+Velocity+Maven demo

    开发者可以通过注解来简化控制器的编写,同时Spring MVC支持多种视图技术,如JSP、FreeMarker、Velocity等。 **Mybatis**:Mybatis是一个轻量级的持久层框架,它解决了Java开发中的数据库操作问题。Mybatis通过XML...

    Velocity从入门到精通

    - **CD收藏应用**:该应用利用MySQL数据库构建一个CD收藏管理系统,展示了如何使用Velocity模板进行Web页面的渲染、报表生成以及XML文档的创建。 - **酒店预约系统**:这是一个更复杂的示例,涉及多个Velocity模板...

    velocity相关的四个jar包

    在Java开发中,使用Velocity作为模板引擎是一种常见的做法。Velocity是一个开源项目,它提供了一种简单、快速且可扩展的方式来生成动态内容。本篇将详细解释标题和描述中提到的四个关键jar包及其在Velocity中的作用...

    velocity教程

    **Velocity教程** Velocity,作为Apache软件基金会的一个开源项目,是一个基于Java的模板引擎。它允许开发者将HTML页面的展示逻辑与应用逻辑分离,使得开发者可以专注于业务代码的编写,而设计师则可以专心于页面...

    掌握Apache Velocity

    ### 知识点一:Apache Velocity 概述与发展历程 - **Apache Velocity**是一种用于Java应用程序...- **用Velocity输出XML**: 如何生成符合XML格式的输出。 - **文章XML查询**: 如何使用Velocity进行XML数据查询和处理。

    springmvc3 + velocity 1.7+maven + mysql

    Spring MVC 3、Velocity 1.7、Maven 和 MySQL 是构建现代Web应用程序的四个关键组件,它们共同为开发者提供了一套强大而灵活的工具集。让我们深入了解一下这些技术及其在项目中的应用。 1. Spring MVC 3:Spring ...

Global site tag (gtag.js) - Google Analytics