龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Velocity实例

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
Velocity 是一个基于 Java 的通用模板工具,来自于 jakarta.apache.org 。 Velocity 的介绍请参考 Velocity -- Java Web 开发新技术。这里是它的一个应用示例。 这个例子参照了 PHP-Nuke 的结构, 即所有

   

  
   Velocity 是一个基于 Java 的通用模板工具,来自于 jakarta.apache.org 。

  Velocity 的介绍请参考 Velocity -- Java Web 开发新技术。这里是它的一个应用示例。

  这个例子参照了 PHP-Nuke 的结构, 即所有 HTTP 请求都以 http://www.some.com/xxx/Modules?name=xxx&arg1=xxx&bbb=xxx 的形式进行处理。例子中所有文件都是 .java 和 .Html , 没有其他非凡的文件格式。除了 Modules.java 是 Java Servlet, 其余的 .java 文件都是普通的 Java Class.

  所有 HTTP 请求都通过 Modules.java 处理。Modules.java 通过 Velocity 加载 Modules.htm。 Modules.htm 有页头,页脚,页左导航链接,页中内容几个部分。其中页头广告、页中内容是变化部分。页头广告由 Modules.java 处理,页中内容部分由 Modules.java dispatch 到子页面类处理。

  1) Modules.java

          import javax.servlet.*;
  import javax.servlet.http.*;
  import org.apache.velocity.*;
  import org.apache.velocity.context.*;
  import org.apache.velocity.exception.*;
  import org.apache.velocity.servlet.*;
  import commontools.*;

  public class Modules
  extends VelocityServlet {
  public Template handleRequest(HttpServletRequest request,
       HttpServletResponse response,
       Context context) {
  //init
  response.setContentType("text/html; charset=UTF-8");
  response.setCharacterEncoding("utf-8");

  //prepare function page
  ProcessSubPage page = null;
  ProcessSubPage mainPage = new HomeSubPage();
  String requestFunctionName = (String) request.getParameter("name");
  boolean logined = false;

  String loginaccount = (String) request.getSession(true).getAttribute(
  "loginaccount");
  if (loginaccount != null) {
  logined = true;
  }

  //default page is mainpage
  page = mainPage;
  if (requestFunctionName == nullrequestFunctionName.equalsIgnoreCase("home")) {
  page = mainPage;
  }

  //no login , can use these page
  else if (requestFunctionName.equalsIgnoreCase("login")) {
  page = new LoginProcessSubPage();
  }
  else if (requestFunctionName.equalsIgnoreCase("ChangePassWord")) {
  page = new ChangePasswordSubPage();
  }
  else if (requestFunctionName.equalsIgnoreCase("ForgetPassword")) {
  page = new ForgetPassword();
  }
  else if (requestFunctionName.equalsIgnoreCase("about")) {
  page = new AboutSubPage();
  }
  else if (requestFunctionName.equalsIgnoreCase("contact")) {
  page = new ContactSubPage();
  }

  
  //for other page, need login first
  else if (logined == false) {
  page = new LoginProcessSubPage();
  }

  else if (requestFunctionName.equalsIgnoreCase("listProgram")) {
  page = new ListTransactionProgramSubPage();
  
  

精彩图集

赞助商链接