velocity基础教程--3用velocity代替jsp作为程序视图展示
来源:互联网 发布:淘宝自动充值 编辑:程序博客网 时间:2024/04/30 12:23
用veloctiy代替jsp作为程序视图展示
这里我们需要一个velocity的扩展工具包veloctiy-tools,我们可以在velocity的官方网站中得到。
在web.xml中配置相关的servlet
toolbox.xml是实体映射文件后面会有说明
velocity.properties是配置文件
这里仅设置了字符编码
这里我们创建了一个默认的vm模板文件
VM_global_library.vm 默认放置在web根目录下 放置一些全局的数据
接下来我们创建一个Person类
PersonService实际处理的对象
现在再看看我们的映射文件应该可以很明确了
下面看看我们的两个模板
一个是显示全部 一个是显示单个
persons
person
这里我们需要一个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>
0 0
- velocity基础教程--3用velocity代替jsp作为程序视图展示
- velocity基础教程--3用velocity代替jsp作为程序视图展示
- 用velocity代替jsp作为程序视图展示
- velocity基础教程
- springmvc集成 velocity,实现多视图整合(jsp,velocity)
- Spring 集成Velocity,代替JSP输出自定义页面
- 关于spring boot使用velocity作为视图层模板
- Velocity
- Velocity
- Velocity
- Velocity
- Velocity
- Velocity
- velocity
- VELOCITY
- Velocity
- Velocity
- VELOCITY
- hdu1171-01背包
- cnpm 安装
- Swift练习一: 使用TableView展示数据
- PHP脚本执行效率性能检测之WebGrind的使用
- Q1010 Tempter of the Bone C++ (深度优先搜索)
- velocity基础教程--3用velocity代替jsp作为程序视图展示
- Android项目笔记六:自定义的wificlass
- iOS开发笔记--使用blend改变图片颜色
- android studio运行直接进入了上次打开的项目,没有第一次打开的选择窗口
- Cordova之Android环境搭建
- Collections类方法的简单使用
- live555源代码分析
- 传值和传址的区别
- 在iOS中动态改变statusbar的颜色