用veloctiy代替jsp作为视图展示
这里我们需要一个velocity的扩展工具包veloctiy-tools,我们可以在velocity的官方网站中得到。
在web.xml中加入相关的servlet 配置
<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/tools.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>
tools.xml
<?xml version="1.0"?>
<!--
key表示vm引用的对象名称,该名称必须是唯一的 scope表示对象的生命周期,其可以设置的值为:request,session,application。request-path假如scope设置为request,该对象是为那一个servlet使用的,request-path的命名最后需要加上允许访问的路径,这是必须的 class表示对应的实现类
-->
<toolbox>
<data type="string">
<key>userList</key>
<value>用户列表</value>
</data>
<tool>
<key>userService</key>
<scope>request</scope>
<request-path>/user/*</request-path> <!-- /user/路径可以访问 -->
<class>demo.service.UserService</class>
</tool>
</toolbox>
package demo.model;
public class User {
private int id;
private String name;
private int age;
public User(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
}
package demo.service;
import java.util.ArrayList;
import java.util.List;
import demo.model.User;
public class UserService {
static private List<User> users = new ArrayList<User>();
static {
for (int i = 0; i < 10; i++) {
users.add(new User(i, "name" + i, i + 3));
}
}
public List<User> listUsers() {
return users;
}
public User getUser(int id) {
for (User user : users) {
if (user.getId() == id)
return user;
}
return null;
}
public int parseInt(String id){
return Integer.parseInt(id);
}
}
下面看看我们的两个模板
一个是显示全部users.vm 一个是显示单个user.vm
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>$userList</title>
</head>
<body>
<table width="50%">
<tr bgcolor="#FFFFFF">
<th>姓名</th>
<th>年龄</th>
</tr>
#foreach($user in ${userService.listUsers()})
<tr bgcolor="#FFFFFF">
<td><a href="user.vm?id=${user.getId()}">${user.getName()}</a></td>
<td align="center">${user.getAge()}</td>
</tr>
#end
</table>
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>$userList</title>
</head>
<body>
#set($id = $request.getParameter("id"))
$id
<table>
<tr>
<td> 姓名</td>
<td>年龄</td>
</tr>
#set( $user=${userService.getUser($userService.parseInt($id))} )
<tr>
<td>${user.getName()}</td>
<td>${user.getAge()}</td>
<tr>
</table>
</body>
</html>
分享到:
相关推荐
Veloctiy是一款高效、轻量级且强大的Java模板引擎,它是Apache软件基金会下的一个开源项目,被广泛用于Web开发中生成动态内容。Velocity旨在将呈现逻辑从业务逻辑中分离出来,提高代码的可读性和可维护性。通过使用...
【veloctiy+webwork+ibatis+spring资料】这套学习资源主要涵盖了四个在Java Web开发领域中常用的技术框架:Velocity、WebWork、iBATIS和Spring。这四大框架各有其独特功能,组合使用可以构建出高效、灵活的业务应用...
在Veloctiy代码生成器中,MDA的概念可能是通过定义一套模板模型,根据这些模型生成对应的Java代码,如实体类、DAO、Service和Action等。用户可以根据自己的需求定制模板,使得生成的代码更符合特定项目的规范。 ...
Velocity 模板引擎还提供了引入其他文件的功能,可以使用#include(“”)来引入其他文件,如果是 JSP 或者 vm 文件将会显示内容,其他文本文件显示文本,二进制会显示乱码,可以使用 , 间隔引入多个文件。 Velocity ...
本书从数据库的基础知识、软件开发环境的构建以及JSP,Veloctiy,OJB,Struts等常用技术的基础知识入手,通过多个完整的实例讲解了使用Java语言进行软件开发的流程和方法。 书中选取的实例,既注重实例的多样性,也...
SpringBoot1.4之后不再支持velocity,导致spring-boot-starter-velocity无法使用,本demo是SpringBoot1.5.x与velocity2集成demo,代码是基于http://download.csdn.net/download/qq_30023773/10032465改的,原代码是...
本来变量是$vice现在却变成了$vicemaniac,这样Veloctiy就不知道您到底要什么了。所以,应该使用规范的格式书写 : Jack is a ${vice}maniac 现在Velocity知道变量是$vice而不是$vicemaniac。 注意:当引用属性的...
5. 原因找到,Veloctiy 管脚范围值填入数据必须大于 50.0,重新修改 Veloctiy 管脚为50.0,下载,使能 JogForward(正转)M0.3 = 1,没有出现报警 Error 的 M0.6 = 0。 6. 反正是测试,我索性同时使能 M0.3 和 M0.4...
花了所有CSDN积分收集来的Velocity资料集合: Velocity Java开发指南中文版 Velocity Web应用开发指南中文版 ...Veloctiy例子 Struts结合Velocity开发web应用 Struts与Velocity的简单集成 使用Velocity开发web程序
利用到的开源技术有Hibernate、Veloctiy、Webwork。 4. FreeReportBuilder FreeReportBuilder是一个Java报表工具,可以与任何数据库正常工作,只需要有一个JDBC驱动程序。能够和各种数据库工作。 5. JMagallanes ...
使用的技术jUnit版本4. + Fluentlenium版本0.10.3 Veloctiy版本1.7 Java HTML5 CSS3 Bootstrap版本3.2.0设置克隆此存储库: $ cd ~/Desktop$ git clone https://github.com/SummerBr/shoe-store-java.git$ cd shoe-...
自制CHM版的API文档,带索引。 注:如果各位下载后打开或无法显示页面,请在CHM文件右键—属性—解除锁定即可。