免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1435 | 回复: 0
打印 上一主题 下一主题

Stripes tips(16)-页面布局 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-28 22:21 |只看该作者 |倒序浏览
一个web 项目常常包含很多页面,各页面常常只是内容不同。如果每个页面都是独立的,显然维护起来非常麻烦。JSP 提供了  可以将在 JSP 文件中包括其它 JSP 文件片断。但是每个特定的 JSP 页面都需要用  来插入相应的模板,这也是件麻烦的事。
Struts 1 内置了 Tiles 支持,Tiles 能够有效的组织页面。现在 Tiles 已经 Apache 上一个一级项目,称为Tiles 2 ,相应的 Struts 1 中的 Tiles 就是 Tiles 1。
另外一种页面布局工具是 Sitemesh ,原理上与 Tiles 有很大差别,Sitemesh 对开发人员和设计人员更加友好,特定页面依然可以使用完整的 HTML 标签,即可以包含 head,body等标签,运行时才与模板文件进行重新组合。
Stripes 内置了一套简单的方案,与 Tiles 有些类似,但要简单很多,它只含三个相应的标签。
  • 定义了一套可复用的页面模板。
                   
  • 定义了一个模板页面的组件
                   
  • 按模板生成页面
                   
    下面我们通过示例来说明使用。
    示例
    这里重新改造最初的 helloworld 程序。首先创建模板文件,新建/layouts 目录,创建一个 JSP 文件,名为 default.jsp。这里假设把一个页面分为三部分,header,content,和 footer,实际应用中应该复杂得多。一般经常变化的就是内容,即content。
       
       
            
                
                Stripes Layout Examples
            
            
                
                   
                
                
                
                   
                
            
       
           
                           
                   
    我们将header,footer 部分独立成一个单独文件,便于管理。这个layout模板定义了三个组件,即header, content, footer。
    /layouts/header.jsp,/layouts/footer.jsp是普通的 JSP 文件片断。
        Say Hello to Stripes!                
                   
                   
    Powered by Stripes.
           
                   
                   
    layout模板页面已经定义好了,现在看看如何应用。
       
            
                
                
            
       
                   
    运行程序进行测试。
    向layout模板文件传递参数
                   
    现在所的页面标题都是一样的,所有的窗口标题也是不变的。如何让标题动态的显示呢?
    修改 layout 文件。
       
       
            
                
                Stripes Layout Examples:${pageTitle}
            
            
                
                   
                
                ${pageTitle}
                
                
                   
                
            
       
           
                   
    这里打算从外部传一个 pageTitle 进来,用 EL 表示。
       
            
                
                
            
       
                   
                   
    pageTitle 作为  的一个属性。
    另外参数也可以定义为 layout-component, 其属性 name为要传递的参数名。
       
       
            
                Welcome back, ${user.username}
            
            
                Welcome, Guest!
            
       
       
            
                
                
            
       
                   
                   
    创建一个 UserSession类,它提供用户检测功能,但只是一个伪类,这里仅仅只是为了演示。
    嵌套使用
    这三个标签的使用非常灵活。
                   
                               
                   
    footer.jsp 现在是一个 layout-definition。
    Powered by Stripes.
                   
                   
                   
    运行测试项目。
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/1096/showart_1883059.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP