溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

          velocity開發(fā)eclipse插件  http://code.google.com/p/veloeclipse/

          目錄結(jié)構(gòu)
          點我下載工程代碼

          倆實體類不用說了
          看CustomerVelocityServlet類
          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 CustomerVelocityServlet extends VelocityViewServlet{

              
              
          //設(shè)置返回視圖為text/html編碼為gbk
              @Override
              
          protected void setContentType(HttpServletRequest request,
                      HttpServletResponse response) {
                  response.setContentType(
          "text/html;charset=gbk");
              }
              
              
          //處理請求
              @Override
              
          protected Template handleRequest(HttpServletRequest request,
                      HttpServletResponse response, Context ctx) 
          throws Exception {
                  ctx.put(
          "username""張三");
                  ctx.put(
          "password""123456789");
                  ctx.put(
          "age""20");
                  ctx.put(
          "address""陜西西安"); 
                  ctx.put(
          "blog""http://blogjava.net/sxyx2008");
                  
                  List
          <Employee> list=new ArrayList<Employee>();
                  list.add(
          new Employee(1,"張三","陜西西安",18,new Department(1,"軟件研發(fā)部1")));
                  list.add(
          new Employee(2,"張三","陜西西安",19,new Department(2,"軟件研發(fā)部2")));
                  list.add(
          new Employee(3,"張三","陜西西安",20,new Department(3,"軟件研發(fā)部3")));
                  list.add(
          new Employee(4,"張三","陜西西安",21,new Department(4,"軟件研發(fā)部4")));
                  list.add(
          new Employee(5,"張三","陜西西安",22,new Department(5,"軟件研發(fā)部5")));
                  list.add(
          new Employee(6,"張三","陜西西安",23,new Department(6,"軟件研發(fā)部6")));
                  list.add(
          new Employee(7,"張三","陜西西安",24,new Department(7,"軟件研發(fā)部7")));
                  list.add(
          new Employee(8,"張三","陜西西安",25,new Department(8,"軟件研發(fā)部8")));
                  list.add(
          new Employee(9,"張三","陜西西安",26,new Department(9,"軟件研發(fā)部9")));
                  list.add(
          new Employee(10,"張三","陜西西安",27,new Department(10,"軟件研發(fā)部10")));
                  
                  ctx.put(
          "list", list);
                  
          //調(diào)用父類的方法getTemplate()
                  return getTemplate("demo.vm""gbk");
              }
              
          }
          繼承org.apache.velocity.tools.view.servlet.VelocityViewServlet,覆寫setContentType和handleRequest方法,其中setContentType用于設(shè)置瀏覽器的響應(yīng),handleRequest處理用戶的請求,返回Template,我們調(diào)用父類中的getTemplate()方法返回
          在WEB-INF目錄下創(chuàng)建一vm目錄,用于存放模板文件
          在WEB-INF目錄下創(chuàng)建velocity.properties(名字可以任意取)
          內(nèi)容為
          resource.loader = webapp  
          webapp.resource.loader.
          class = org.apache.velocity.tools.view.servlet.WebappLoader
          webapp.resource.loader.path
          =/WEB-INF/vm/  
          input.encoding
          ="gbk"
          output.encoding
          ="gbk"
          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
          <servlet>
                  
          <servlet-name>customerVelocityServlet</servlet-name>
                  
          <servlet-class>com.velocity.servlet.CustomerVelocityServlet</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>

          <init-param>
             <param-name>org.apache.velocity.properties</param-name>
             <param-value>/WEB-INF/velocity.properties</param-value>
          </init-param>
          加載自定義的velocity.properties

          demo.vm
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <HTML>
           
          <HEAD>
            
          <TITLE> velocity </TITLE>
           
          </HEAD>

          ##嘿嘿,我是velocity中的注釋噢
          #*
              嘿嘿,我也是velocity中的注釋噢
          *#

           
          <BODY>
              
          <h1>hehe,這是經(jīng)過由servlet返回的velocity視圖</h1>
              hello ${username},這是你的信息
              
          <ul>
                  
          <li>用戶密碼為:${password}</li>
                  
          <li>年齡為:${age}</li>
                  
          <li>出生地址為:${address}</li>
                  
          <li>個人主頁為:<href='${blog}'>${blog}</a></li>
              
          </ul>
              
              
          <br/>
              
              #foreach($emp in $!{list})
                  $!{velocityCount}
          &nbsp;&nbsp;&nbsp;&nbsp;
                  $!{emp.id} 
          &nbsp;&nbsp;&nbsp;&nbsp;
                  $!{emp.ename} 
          &nbsp;&nbsp;&nbsp;&nbsp;
                  $!{emp.eaddress} 
          &nbsp;&nbsp;&nbsp;&nbsp;
                  $!{emp.age} 
          &nbsp;&nbsp;&nbsp;&nbsp;
                  $!{emp.department.id} 
          &nbsp;&nbsp;&nbsp;&nbsp;
                  $!{emp.department.deptname} 
          <hr/>
              #end
              
           
          </BODY>
          </HTML>

          http://localhost:8080/velocityweb/customerVelocityServlet

          效果圖

          點我下載工程代碼
          posted on 2010-11-11 16:51 雪山飛鵠 閱讀(6101) 評論(2)  編輯  收藏 所屬分類: velocity

          Feedback

          # re: velocity整合servlet[未登錄] 2011-06-15 18:08 bc
          input.encoding="gbk"
          output.encoding="gbk"
          不加引號  回復(fù)  更多評論
            

          # re: velocity整合servlet 2013-03-25 02:51 iooly
          這個引號把我坑苦了。。。弄好之后才看到你的評論 -.-!@bc
            回復(fù)  更多評論
            

          主站蜘蛛池模板: 阿合奇县| 融水| 广汉市| 通海县| 江孜县| 巴东县| 临朐县| 安乡县| 巩义市| 博乐市| 南康市| 颍上县| 锡林浩特市| 内乡县| 宁远县| 镇康县| 北碚区| 丰宁| 伽师县| 务川| 科尔| 烟台市| 剑川县| 五大连池市| 泰安市| 光泽县| 寻甸| 蓝山县| 库车县| 江油市| 循化| 辽宁省| 唐海县| 甘肃省| 白沙| 新巴尔虎右旗| 赫章县| 罗江县| 张家界市| 黑水县| 兴仁县|