`
drinkjava2
  • 浏览: 41807 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JSP页面布局工具jWebBox升级到到2.0版

阅读更多
这是一个JSP页面布局工具,作用和 Tiles, Sitemesh 类似(还有最近的轻量级JSP Layout和Stripes布局工具等),用于JSP页面的布局,最早版本是在08年写的,有不少问题,现在升级到2.0.0版,源码全部重构了一遍。其特点是只有一个纯Java类,无须XML配置(实际上是用布局Java类代替XML),用一个三百行的Java类实现了Tiles的全部功能,功能与Tiles类似,但是在灵活性、无侵入性、简单性和可定制化方面要优于Tiles。使用方式上与Tiles类似,会Tiles的可以很快上手。
JWebBox2.0.0发布在: http://sourceforge.net/projects/jwebbox/, 采用开源BSD协议。

目前一些JSP页面布局工具的缺点:
Tiles: 功能强大但过于臃肿,版本依赖强,源码与struts联系太密,第三方库引用多,XML配置和标签不够灵活。
Sitemesh: 采用装饰器模式,不够强大灵活。
JSP Layout:功能过于简单,布局之间无继承关系,不能复用。
Stripes:是一个mvc框架,布局功能是其子功能,只有三个标签,功能太弱。

JWebBox2.0.0版主要特点:
1)用JAVA类代替XML配置,利用到了JAVA的继承和变量覆盖等特点,JAVA类是每个程序员都能看懂的,无需学习。
  如果布局太复杂可以考虑利用UML工具绘出布局继承和引用关系图。
2)无侵入性,可以和其它页面布局及MVC框架共用而无冲突, 可用于整个网站的架构,也可以用于编写局部页面零件。
3)没有引入任何第三方类库(连Log4j都没用), 也没有使用标签,纯Java方法调用,无学习负担。
4)布局(Box类)是动态生成,在运行期创建和修改非常方便。
5)支持静态方法、实例方法、URL引用三种数据预处理方式。方法签名采用约定而不是接口,减小侵入性。
6)只有一个很小的Box.java文件是必须的,拷贝到项目源码目录下即可使用,方便查看代码和更改源码(采用BSD开源协议)。

使用方法:
JWebBox2.0.0示例文件已打包成jwebbox2.war文件,可直接扔到Webapps目录下运行,示例演示了几种布局用法。
源码也在.war包里,解压后可见。也可直接将jwebbox2.war导入到Eclipse作为一个项目查看。对于新项目,将其
中的Box.java文件,拷到项目源码目录中即可。

一个典型的使用JWebBox2.0布局的项目,由模板页面、布局类、数据预处理类(可选)组成,例如:
1.JSP模板文件,
如一个模板文件template.jsp内容如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<%@page import="com.jwebbox.Box"%>
<%Box box = Box.getBox(pageContext);%>
<head>
<style type="text/css">...</style>
<title>JWebBox2.0.0 Demo</title>
</head>
    <body>
        <div id="temp_content">
            <div id="temp_top">
                <div align="center">
                <% box.showAttribute("menu");%>
                </div>
            </div>
                <% box.showAttribute("body");%>
            <div id="temp_bottom">
                <div align="center">
                <% box.showAttribute("footer");%>
                </div>
            </div>   
        </div>
    </body>
</html>

2.布局Java类
如 DemoBox1.java
public class DemoBox1 extends Box {
    {
        this.setPage("/template/template.jsp");
        this.setAttribute("menu", new Box("/template/menu.jsp").setAttribute("msg", "Demo1 - A basic layout"));
        this.setAttribute("body", new BodyLeftRight());
        this.setAttribute("footer", "/template/footer.jsp");
    }
}

和 DemoBox2.java
public class DemoBox2 extends DemoBox1 {
    {
        this.setAttribute("menu", ((Box) this.getAttribute("menu")).setAttribute("msg", "Demo2 - Change body layout"));
        this.setAttribute("body", new BodyTopDown());
    }
}

其中BodyLeftRight 和 BodyTopDown 也是布局类,一个是左右布局,一个是上下布局,源码因篇幅原因略过,可详见下载示例包。

3.Logic类(可选) 用于访问数据库以对页面提供数据,也可以在运行期更改或创建新布局。
public class DemoLogic {
    ...略一段代码...
    public static void prepareStaticMethod1(PageContext pageContext, Box callerBox) throws IOException {
        pageContext.getOut().write("  This is inserted by prepareStaticMethod1 method<br/>");
    }

    public void preparerBeanMethod1(PageContext pageContext, Box callerBox) throws IOException {
        ((Box) callerBox.getAttribute("menu")).setAttribute("msg", "Demo3 - Show how prepare methods be called");
        callerBox.setAttribute("footer", "/template/page3.jsp");
    }

    public static DemoLogic getInstance(PageContext pageContext) {
        return SingletonInstance.INSTANCE;
        // If use Spring, get bean instance from pageContext:
    }
}

4.最后在需要显示的JSP页面调用布局显示即可:
index.jsp:
<%
    String demono = request.getParameter("demono");
    if ("2".equals(demono))
        new DemoBox2().show(pageContext);
    else if ("1".equals(demono))
        new DemoBox1().show(pageContext);

%>


分享到:
评论

相关推荐

    简单的JSP页面布局

    "简单的JSP页面布局"是一个关键的话题,因为它涉及到如何有效地组织和展示网页内容,以提供良好的用户体验。 JSP页面布局通常包括头部、主体和底部等部分,每个部分可能包含多个元素,如导航栏、内容区域和页脚。...

    JSP页面布局

    本主题将深入探讨“JSP页面布局”,特别是如何通过模块化方式来组织页面,并结合CSS和Jquery实现更灵活的布局和交互。 首先,模块化页面布局是现代Web设计的一个关键概念,它将大的复杂界面分解为独立、可重用的...

    jWebBox2:纯粹的面向对象的JSP布局工具-开源

    JWebBox2.0.0是Java服务器页面(JSP)项目中使用的小型布局工具,起着Tiles和SiteMesh的作用,但是它是纯面向对象设计的,没有XML文件,没有标签,功能强大但简单(仅1个Java类),并且易于使用,可用于构建整个网站...

    实现 JSP 页面布局效果的小框架

    JSP Layout 是一个简单的 JSP 布局支持示例项目,通过一个 Servlet 类和一些配置实现页面布局效果。您可以下载压缩包,直接导入 Eclipse 进行编译。在运行时,只需在 Tomcat 或其他应用服务器上配置一个 web 应用,...

    jsp 2.0技术手册中文版

    《jsp 2.0技术手册中文版》是一本深入解析JavaServer Pages(JSP)2.0版本的专业指南。JSP是Java平台上用于创建动态网页的标准技术,它结合了HTML、Java代码和服务器端组件,为开发者提供了丰富的功能来构建交互式的...

    JSP2.0 Tag 使用

    在JSP2.0技术规范中,引入了一种新的标签机制,被称为Tag Files(标签文件),其主要目标是为了解决传统JSP页面中脚本元素的使用问题,提供一个更为简洁和高效的方式来进行页面动态内容的添加。开发者可以利用标签...

    JSP2.0技术手册完整版+源码

    **JSP2.0技术手册完整版+源码** **一、JSP(JavaServer Pages)简介** JSP是Java平台上的动态网页技术,由Sun Microsystems(现已被Oracle收购)开发,它允许开发者将静态HTML内容与动态Java代码结合起来,以创建...

    jsp做的网上书店jsp web2.0

    JSP页面是如何转换成Servlet的,以及JSP指令(page、include、taglib)、动作标签(jsp:include、jsp:forward、jsp:params等)的使用。 2. **Servlet与JSP的关系**:JSP最终会被编译为Servlet,它们在Web应用程序中...

    《JSP2.0技术手册》

    总之,《JSP 2.0技术手册》是一本全面介绍JSP 2.0技术的教材,适合初学者逐步学习并掌握这一强大的Web开发工具。通过深入理解和实践书中内容,读者可以熟练运用JSP 2.0进行动态网页开发,为未来进一步的Web应用程序...

    后台管理系统模版(jsp页面版)

    总的来说,这个"后台管理系统模版(jsp页面版)"是一个学习和快速搭建后台管理界面的起点,涵盖了从基础的JSP语法到复杂的数据库交互和权限控制等多个知识点。通过这个模板,开发者可以了解和实践后台管理系统的开发...

    JSP2.0 API chm

    **JSP 2.0 API 知识点详解** ...JSP 2.0是其一个重要版本,带来了许多改进和新特性,提升了开发效率...共享的“JSP2.0 API chm”帮助文档无疑是一个宝贵的资源,有助于开发者在实践中进一步探索和提升JSP 2.0的技术水平。

    jsp2.0_技术手册

    这个PDF版的《JSP 2.0技术手册》对初学者来说是一份宝贵的资源,它详细讲解了上述所有知识点,并提供了丰富的示例代码,有助于读者快速掌握JSP 2.0的核心概念和技术。在学习过程中,读者可以结合实际项目练习,...

    JSP2.0技术手册完整版附源码.rar

    **JSP 2.0 技术手册及源码详解** **一、JSP 2.0 概述** JSP(JavaServer Pages)是一种基于Java的动态网页开发技术,由Sun Microsystems公司推出,用于创建交互式的Web应用程序。JSP 2.0是其重要的一个版本,它在...

    jsp2.0基本语法

    - `&lt;jsp:forward&gt;`:将请求转发到另一个页面。 - `&lt;jsp:param&gt;`:向包含或转发的页面传递参数。 - `&lt;jsp:useBean&gt;`:查找或实例化一个JavaBean。 - `&lt;jsp:setProperty&gt;`:设置JavaBean的属性。 - `&lt;jsp:...

    JSP2.0大学教程-覃华

    3. **页面指令简化**:在JSP 2.0中,`&lt;jsp:include&gt;`、`&lt;jsp:useBean&gt;`、`&lt;jsp:setProperty&gt;`等元素被简化,使得页面结构更清晰。 4. **脚本元素的声明性**:在JSP 2.0中,可以通过`! %&gt;`声明变量和方法,而不必...

    jsp页面人力资源管理系统静态页面

    这意味着开发者可以利用JSP的内置对象(如request、response、session、application等)、指令(如、等)以及EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)等工具来实现页面的动态生成...

    基于Java技术的全栈页面布局工具设计源码

    该工具源码基于Java技术,致力于提供全栈页面布局支持,包含47个文件,涵盖15个JSP页面、6个批处理脚本、6个PNG图像资源、5个XML配置文件、4个FreeMarker模板、2个Markdown文档、2个Java源代码文件、1个Git忽略规则...

    jsp2.0 技术手册

    《jsp2.0 技术手册》是一本详细阐述JavaServer Pages(JSP)技术的参考书籍,旨在帮助开发者掌握从基础到高级的JSP技术要点。JSP是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它是在...

Global site tag (gtag.js) - Google Analytics