jsp 模板继承 模仿djano的模板继承.

摘要: 自从用了django 的模板继承之后,就越来越喜欢这种风格,它可以使页面更简介,无论自己查看代码,维护代码,都很舒服, 但java jsp 一直没有类似的东西, 在万能的谷歌帮助之下,找到了一些资料,其中一部分是用类似于tiles,sitemesh 等框架来实现,但这些都不是我心里想要的那种,最后搜索到了rapid framework 里面有提到这个东西,但却没有演示代码, 于是自己按提示加工改造了一下,可以正常工作。

自从用了django 的模板继承之后,就越来越喜欢这种风格,它可以使页面更简介,无论自己查看代码,维护代码,都很舒服, 但java jsp 一直没有类似的东西, 在万能的谷歌帮助之下,找到了一些资料,其中一部分是用类似于tiles,sitemesh 等框架来实现,但这些都不是我心里想要的那种,最后搜索到了rapid framework 里面有提到这个东西,但却没有演示代码, 于是自己按提示加工改造了一下,可以正常工作。

做web 网站一般有同一的风格,头部,左边导航栏,主工作区,底部,头尾基本固定的,这些东西可以写在基类模板中,包括整个站点用到的css,js 都可以在基类模板中定义。 在基类模板中定义很多扩展点,其他继承于这个模板的页面,只需要写扩展点部分的页面代码就可以,这样页面就可以看起来很简洁.

实现的方式也很简单,就是写jsp tag, 自定义的 tag 来实现, 具体的实现,可以参考源代码.
比如,如下就是基类模板base.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>    
<%@ include file="taglibs.jsp"%>




     
    
 
 
  
    
    
	
	   this is the main content
	
   



作为测试模板,定义了两个扩展点js_css_extend,myname。 其他继承于这个模板的页面只需要实现扩展点即可, 比如index.jsp

<%@ taglib uri="http://yihaomen.com/jsp/extend/core" prefix="e" %>

  
      
  

  
   

test

This is my test.

<%@ include file="base.jsp" %>


标签的定义



    
  my jsp extend tags
  jsp extend
  1.0
  e
  http://yihaomen.com/jsp/extend/core
  
  
     block tag  
    block
    com.yihaomen.extend.tag.BlockTag
    JSP

    
         block name 
        name
        true
        true
    
  

  
     override desc  
    override
    com.yihaomen.extend.tag.OverrideTag
    JSP

    
         override name, must be equals block name for override  
        name
        true
        true
    
  
  



这样就可以很简单的实现jsp 模板的继承,用起来很爽. 测试源代码下载:

jsp template extend sapmel

上一篇: 用java代码得到当前电脑有几个CPU,几个处理器
下一篇: Spring mvc同时支持xml与json.
 评论 ( What Do You Think )
名称
邮箱
网址
评论
验证
   
 

 


  • 微信公众号

  • 我的微信

站点声明:

1、一号门博客CMS,由Python, MySQL, Nginx, Wsgi 强力驱动

2、部分文章或者资源来源于互联网, 有时候很难判断是否侵权, 若有侵权, 请联系邮箱:summer@yihaomen.com, 同时欢迎大家注册用户,主动发布无版权争议的 文章/资源.

3、鄂ICP备14001754号-3, 鄂公网安备 42280202422812号