这是一个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页面布局,以及常见的页面嵌套方式,使用Frame 以及Include组成
JWebBox2.0.0是Java服务器页面(JSP)项目中使用的小型布局工具,起着Tiles和SiteMesh的作用,但是它是纯面向对象设计的,没有XML文件,没有标签,功能强大但简单(仅1个Java类),并且易于使用,可用于构建整个网站...
JSP Layout 是一个简单的 JSP 布局支持示例项目,通过一个 Servlet 类和一些配置实现页面布局效果。您可以下载压缩包,直接导入 Eclipse 进行编译。在运行时,只需在 Tomcat 或其他应用服务器上配置一个 web 应用,...
JSP2.0技术手册(中文版) JSP2.0技术手册(中文版)
jsp页面引入KindEditor文本编辑器
以模块的方式分割页面为上中(中分为左右)下,以及常见的登录框
jsp web2.0 jsp做的网上书店jsp做的网上书店
中文版jsp 2.0技术手册和Jstl标签
任何jsp页面只要使用包含附件中的loading.jsp将自动拥有“页面正在加载的。。”提示信息,在页面加载完后将自动隐藏。 我为什么使用这个组件? 1。交互性。 客户清楚知道,你的页面是在加载,需要等待,而不用...
JSP2.0技术手册完整版+源码 JSP2.0技术手册完整版+源码
JSP2.0技术手册完整版附源码.rar JSP2.0技术手册完整版附源码.rar JSP2.0技术手册完整版附源码.rar JSP2.0技术手册完整版附源码.rar
列子直接部署在TomCat运行 采用JAVA的jsp页面 登录不用密码,直接可以登录
JSP2.0技术手册
jsp2.0 tag 的一个简单的使用说明文档,有助于了解tag的使用
2010年,JTBC主推dotnet版本(V2.0)以及jsp版本(V2.0),这2个版本在CMS的操作方式上做了最新的尝试,将我们日常生活中最常用的OS(windows,linux)的操作模式融入到CMS中,摈弃了以往传统的左右分栏的管理模式,使CMS的...
《jsp2.0 技术手册》包括简介Servlet和JSP、Session Tracking、等 从入门到高级
由MIT提供的js美化大师,可对jsp、html,js等进行格式化,比其他格式化工具效果都好。该工具为web应用,解压后打开index.html,将源码复制到格式化区域,点击ctrl+Enter,即可完成格式化。
jsp网页通过ajax传递json数据到java的servlet中,servlet处理数据后回传json数据到jsp页面
Jsp 2.0 大学教程Jsp 2.0 大学教程Jsp 2.0 大学教程Jsp 2.0 大学教程Jsp 2.0 大学教程Jsp 2.0 大学教程
根据PDF的存放路径,将PDF文件显示在JSP页面,可显示多个,也可显示固定的一个 根据具体需求在JSP页面显示一个或者多个PDF