- 浏览: 470811 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
chexiazi:
一样的xml代码 报这个错 <ns1:XMLFault ...
CXF 通过用户名和密码进行验证 -
di1984HIT:
谢谢啊 ~~~
通过JavaCompiler进行编译java文件(转载) -
aa00aa00:
'%${userName}%' 这种是可以的,是可以模糊查询的 ...
mybatis 模糊查询 -
一棵杨柳的地盘:
我把你的代码不了一遍 但是汇报错首先:static { ...
CXF 通过用户名和密码进行验证 -
shangmin1990:
转 IntelliJ IDEA 编辑器生成 Hibernate 实体映射文件
第一天学习velocity,参考别人的blog写了一个与Servlet结合的例子,写到下面以待备份
目录结构
俩实体类代码:
Department
package com.velocity.bean;
public class Department {
private int id;
private String deptname;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getDeptname() {
return deptname;
}
public void setDeptname(String deptname) {
this.deptname = deptname;
}
public Department(int id, String deptname) {
super();
this.id = id;
this.deptname = deptname;
}
public Department() {
super();
}
}
-------------------------------------------------------------------------------------------------
package com.velocity.bean;
public class Employee {
private int id;
private String ename;
private String eaddress;
private int age;
private Department department;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getEaddress() {
return eaddress;
}
public void setEaddress(String eaddress) {
this.eaddress = eaddress;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public Employee(int id, String ename, String eaddress, int age,
Department department) {
super();
this.id = id;
this.ename = ename;
this.eaddress = eaddress;
this.age = age;
this.department = department;
}
public Employee() {
}
}
看SampleServlet类
package com.velocity.servlet;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.velocity.Template;
import org.apache.velocity.context.Context;
import org.apache.velocity.tools.view.servlet.VelocityViewServlet;
import com.velocity.bean.Department;
import com.velocity.bean.Employee;
@SuppressWarnings("serial")
public class SampleServlet extends VelocityViewServlet{
//设置返回视图为text/html编码为gbk
@Override
protected void setContentType(HttpServletRequest request,
HttpServletResponse response) {
response.setContentType("text/html;charset=utf-8");
}
//处理请求
@Override
protected Template handleRequest(HttpServletRequest request,
HttpServletResponse response, Context ctx){
ctx.put("username", "张三");
ctx.put("password", "123456789");
ctx.put("age", "20");
ctx.put("address", "北京");
ctx.put("blog", "http://wcp88888888.iteye.com/");
List<Employee> list=new ArrayList<Employee>();
list.add(new Employee(1,"张三","北京",18,new Department(1,"软件研发部1")));
list.add(new Employee(2,"张三","北京",19,new Department(2,"软件研发部2")));
list.add(new Employee(3,"张三","北京",20,new Department(3,"软件研发部3")));
list.add(new Employee(4,"张三","北京",21,new Department(4,"软件研发部4")));
list.add(new Employee(5,"张三","北京",22,new Department(5,"软件研发部5")));
list.add(new Employee(6,"张三","北京",23,new Department(6,"软件研发部6")));
list.add(new Employee(7,"张三","北京",24,new Department(7,"软件研发部7")));
list.add(new Employee(8,"张三","北京",25,new Department(8,"软件研发部8")));
list.add(new Employee(9,"张三","北京",26,new Department(9,"软件研发部9")));
list.add(new Employee(10,"张三","北京",27,new Department(10,"软件研发部10")));
ctx.put("list", list);
//调用父类的方法getTemplate()
return getTemplate("demo.vm");
}
}
-------------------------------------------------------------------------------------------------------------
继承org.apache.velocity.tools.view.servlet.VelocityViewServlet,覆写setContentType和handleRequest方法,其中setContentType用于设置浏览器的响应,handleRequest处理用户的请求,返回Template,我们调用父类中的getTemplate()方法返回
在WEB-INF目录下创建一vm目录,用于存放模板文件
在WEB-INF目录下创建velocity.properties(名字可以任意取)
内容为
webapp.resource.loader.class = org.apache.velocity.tools.view.servlet.WebappLoader
webapp.resource.loader.path=/WEB-INF/vm/
input.encoding=utf-8 ----该处不能加双引号,要不会爆无法转换utf-8的错误
output.encoding=utf-8
resource.loader = webapp 加载方式为webapp
webapp.resource.loader.class = org.apache.velocity.tools.view.servlet.WebappLoader webapp方式加载处理类
webapp.resource.loader.path=/WEB-INF/vm/ 模板文件目录
input.encoding="gbk" 输入字符编码
output.encoding="gbk" 输出字符编码
配置web.xml
<?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">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>customerVelocityServlet</servlet-name>
<servlet-class>com.velocity.servlet.SampleServlet</servlet-class>
<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>customerVelocityServlet</servlet-name>
<url-pattern>/customerVelocityServlet</url-pattern>
</servlet-mapping>
</web-app>
-----------------------------------------------------------------------------------------------------------------
<init-param>
<param-name>org.apache.velocity.properties</param-name>
<param-value>/WEB-INF/velocity.properties</param-value>
</init-param>
加载自定义的velocity.properties
demo.vm
<HTML>
<HEAD>
<TITLE> velocity </TITLE>
</HEAD>
##嘿嘿,我是velocity中的注释噢
#*
嘿嘿,我也是velocity中的注释噢
*#
<BODY>
<h1>hehe,这是经过由servlet返回的velocity视图</h1>
hello ${username},这是你的信息
<ul>
<li>用户密码为:${password}</li>
<li>年龄为:${age}</li>
<li>出生地址为:${address}</li>
<li>个人主页为:<a href='${blog}'>${blog}</a></li>
</ul>
<br/>
#foreach($emp in $!{list})
$!{velocityCount}
$!{emp.id}
$!{emp.ename}
$!{emp.eaddress}
$!{emp.age}
$!{emp.department.id}
$!{emp.department.deptname} <hr/>
#end
</BODY>
</HTML>
http://localhost:8080/VelocityWeb/customerVelocityServlet
效果图
发表评论
-
java 位运算总结
2018-10-23 11:14 0<div class="iteye-blog- ... -
java sort 排序中的自然序排序总结
2018-10-23 11:07 5821<div class="iteye-blo ... -
Java内存分析工具
2012-11-24 11:16 2255Java运行时数据区包含:Method area, heap, ... -
转 StringUtils.isBlank()函数(分享一下)
2012-02-15 10:23 2991StringUtils的isBlank与isEmply ... -
jquery 使用ajax 提交整个表单的数据
2012-01-06 14:52 5926在使用Struts开发项目的时候发现很爽的一件事就是可以不使用 ... -
struts2 通配符
2011-12-31 16:25 1292在使用struts2时,如果想定义action的话可以这样做 ... -
Maven Web项目部署到Tomcat下
2011-12-30 17:28 19550通过Maven来搭建项目是 ... -
ibatis 与spring3整合
2011-12-28 13:01 5731spring与ibates整合,使用 ... -
ibatis 入门
2011-12-28 12:48 1273昨天学习了一下ibatis ... -
转 JTA简介
2011-12-26 17:47 1067Java Transaction API(Java事务 ... -
转 IntelliJ IDEA 编辑器生成 Hibernate 实体映射文件
2011-12-23 16:03 23393很多人不知道怎么用 IntelliJ IDEA 编辑器 ... -
转 IntelliJ IDEA 使用基础篇 Java IDE编辑器
2011-12-23 15:02 8525IntelliJ IDE ... -
转在CXF中用JAXB数据绑定支持Map类型
2011-12-05 16:38 5240一些java类型不能自然映射成xml,例如,HashMap ... -
cxf wsdltojava 构造方法报错
2011-12-05 14:23 1326I'm marking this as "n ... -
(转)Struts2学习笔记--Internationalization
2011-11-21 18:13 1344Struts2 的国际化 ======== ... -
单例模式
2011-11-18 20:47 1019单例模式(SINGLETON):单例模式确保某一个类只有一个实 ... -
类加载的顺序
2011-11-17 21:40 1195写道 package com.wang; public cl ... -
socket实现客户端与客户端通信
2011-11-17 19:34 3048最近闲来无聊,看了一下socket通信,实现了一个最简版的客户 ... -
接口设计的 11 种原则
2011-05-02 21:02 27457种设计坏味道 1.僵化性: 很难对系统进行改动,因为每个改动 ... -
Maven2 安装jar到你的资源库
2011-04-26 18:01 1158将一个jar文件添加到你的资源库里面 首先是安装maven2 ...
相关推荐
通过学习这个"Velocity + Servlet简单工程例子",你可以了解到如何在Java Web应用中整合Velocity,理解模板引擎如何与Servlet协同工作,以及如何在实际项目中实现动态内容的生成。这将对你的Web开发技能提升大有裨益...
在SpringMVC和Velocity的整合项目中,Maven可以帮助我们管理Spring、Velocity以及其它依赖库的版本,确保项目的可重复构建。 将SpringMVC、Velocity和Maven整合在一起,可以按照以下步骤进行: 1. **配置POM.xml**...
在这个"SpringMVC+Velocity+iBATIS的整合小demo"中,可能包含了这些配置文件、Controller类、Service接口及其实现、Mapper接口及其XML配置、Velocity模板文件等。通过这些文件,我们可以看到一个完整的Java Web应用...
将Spring MVC与Velocity整合,可以实现高效且易于维护的前端展示。 **1. Spring MVC 概述** Spring MVC是Spring框架的一部分,它提供了一个灵活的MVC实现,包括请求处理、模型绑定、异常处理等功能。通过...
总的来说,Velocity与Struts2的整合使得开发者可以利用Velocity的强大模板能力来构建更加灵活和可维护的视图层,同时利用Struts2的控制层来处理业务逻辑和动作。这种方式提高了应用程序的可扩展性和模块化。在实际...
Velocity是一个开源的Java模板引擎,它允许开发者将业务逻辑与展示逻辑分离。通过简单的语法,开发者可以在模板中插入Java代码,从而动态生成HTML或其他格式的文本。Velocity模板语言(VTL)使得开发者可以轻松地...
SpringMVC 和 Velocity 的整合是将 Velocity 作为模板引擎与 SpringMVC 框架结合,以实现更高效、灵活的视图层渲染。Velocity 是一个开源的 Java 模板引擎,它允许开发者将业务逻辑与表现层内容分离,使得前端开发...
Velocity将业务逻辑与表现层分离,开发者可以专注于创建动态模板,而无需关心底层数据处理。Velocity模板语言(VTL)简单易懂,使得视图层的开发更为便捷。 **整合步骤** 1. **创建Maven项目**:首先,我们需要...
在Java Web开发中,Velocity可以将Java代码与展示层分离,让开发人员和界面设计人员更高效地协作。 #### Velocity入门 入门部分通过编写一个简单的“Hello, World”程序展示了Velocity的基本使用流程。首先,创建...
**SpringMVC3与Velocity的整合** 整合SpringMVC3和Velocity主要涉及以下几个步骤: 1. **添加依赖**: 在项目中引入SpringMVC和Velocity的相关库,通常包括`spring-webmvc`和`velocity`或者`velocity-tools`。 2. ...
- **整合框架**:根据所选框架的具体要求进行整合,例如配置 Servlet 或 Filter。 ##### 2. 实践示例 - **VelocityViewServlet 示例**:配置 web.xml 文件,注册 VelocityViewServlet,并设置其初始化参数,如 ...
首先,我们需要从 Spring 框架的 GitHub 仓库中克隆 SpringFramework 4.3.2.RELEASE 版本的代码,并从中拷贝 org.springframework.ui.velocity 和 org.springframework.web.servlet.view.velocity 模块下 Velocity ...
推荐使用模板引擎(如FreeMarker、Velocity),它们提供了更简洁、可维护的模板语法。 - MVC框架:在大型项目中,推荐使用MVC框架(如Spring MVC、Struts)来管理和分发请求,这样可以更好地分离关注点,提高代码的...
在这个"struts2+spring+velocity扩展实例V1版本"中,我们可以看到这三个框架的集成与应用。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它的主要职责是处理用户的请求,并将其...
《JSP网络开发技术与整合应用1》这本书的焦点在于教授如何使用Java Server Pages(JSP)技术进行网络应用程序的开发。JSP是Java平台上的一种动态网页技术,它允许开发者在HTML或者XML文档中嵌入Java代码,从而实现...
【整合SpringMVC、MyBatis与Velocity】 在构建最小实例时,首先需要配置SpringMVC的DispatcherServlet,定义Controller处理HTTP请求,并配置ModelAndView以指定视图解析器。接下来,集成MyBatis,配置...
"Velocity例子"是一个关于使用Apache Velocity模板引擎的实践示例。Apache Velocity是一个开源的Java模板引擎,...对于想要学习或使用Velocity的人来说,这是一个很好的起点,可以了解如何将模板引擎整合进实际项目中。
此外,`javassist`用于动态字节码操作,`cglib`或`asm`在Spring的AOP实现中使用,`javax.servlet-api`和`javax.servlet.jsp-api`是Servlet和JSP规范的API,`jstl.jar`和`standard.jar`则用于JSTL标签库。 在实际...
【Spring + SpringMVC + MyBatis + Velocity 整合详解】 在Web开发领域,Spring、SpringMVC、MyBatis和Velocity这四个组件是非常常见的技术栈,它们各自扮演着不同的角色,共同构建了一个高效、灵活的Web应用程序。...
整合Struts2、Hibernate和JSP,主要是将Struts2的动作控制与Hibernate的数据访问结合,通过JSP展示数据。以下是一些整合过程中的关键点: 1. **配置整合**:在Struts2的配置文件(struts.xml)中,需要定义Action类...