Velocity实例

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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();

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航