`
cucaracha
  • 浏览: 141793 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A8f3fa2f-18ce-3862-897a-5d2209197c90
Java NIO.2
浏览量:88116
7a076ba7-8ec8-3241-aa3c-67bb2f7856a2
Java EE 7 简明教...
浏览量:36817
社区版块
存档分类
最新评论

[JSP] JSP Fragment 实现布局管理

    博客分类:
  • JSP
阅读更多
在传统 JSP 中,想要实现页面布局管理比较麻烦,为了解决在 JSP 中布局的问题,出现了很多开源软件,比如 Apache Tiles 和 SiteMesh 就是其中比较优秀的。但是使用开源软件实现布局或多或少会产生一些性能问题,有没有办法在不依赖第三方开源软件的情况下,使用 JSP 本身来实现页面布局呢?

JSP 2.0 引入了 Fragment 技术,使用 Fragment 技术可以在 JSP 中实现类似 Tiles 和 SiteMesh 的页面布局管理。

下面的例子说明了如何使用 Fragment 实现页面布局。

1、首先在 WEB-INF/tags 文件夹中创建 template.tag 文件:

<%@tag description="template 1" pageEncoding="UTF-8"%>
<%@attribute name="header" fragment="true" %>
<%@attribute name="footer" fragment="true" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>

    <body>
        <jsp:invoke fragment="header"/>
        <jsp:doBody/>
        <jsp:invoke fragment="footer"/>
    </body>
</html>


在 tag 文件头部申明了两个 attribute 分别是 header 和 footer。在 <body> 标签中调用了这两个 attribute 所对应的 fragment。jsp:invoke 和 jsp:doBody 中的具体内容会被 jsp 中的内容替换。现在编写 index.jsp。

2、创建 index.jsp 文件

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="t" tagdir="/WEB-INF/tags/"%>

<t:template>
    <jsp:attribute name="header">
        这里的内容显示在头部。
    </jsp:attribute>
    <jsp:attribute name="footer">
        这里的内容显示在尾部。
    </jsp:attribute>
    <jsp:body>
        这里显示正文内容:Hello World!
    </jsp:body>
</t:template>


jsp:attribute 标签中的内容将会替换 template.tag 中 jsp:invoke 的内容,name 属性对应 fragment 属性。

如果访问 index.jsp 页面,可以看到显示的内容会按照 template.tag 中设计的样式来进行布局。

文章来源:http://www.aptusource.org/2014/03/jsp-layout/
0
2
分享到:
评论

相关推荐

    jsp开发技术(汇总)

    1. **嵌入Java代码**:JSP 页面中可以直接插入 Java 代码,使得动态功能的实现更为直观。 2. **自动转换为Servlet**:JSP 在运行时会被容器自动转换为对应的Servlet,无需手动配置。 3. **热部署**:当JSP文件被修改...

    thymeleaf th fragment高级应用 – Pure nonsense.rar

    3. **模板布局**:Thymeleaf的Fragment可以用于构建复杂的页面布局,例如页眉、页脚、侧边栏等。通过`th:insert`或`th:replace`,可以在主模板中插入不同的Fragment来组合成完整的页面。 4. **模板继承**:除了...

    底部导航栏

    底部导航栏是移动应用设计中常见的...综上所述,实现底部导航栏功能涉及界面设计、布局切换、事件监听等多个方面。开发者需遵循设计规范,利用合适的工具和框架,结合性能优化和无障碍设计,以提供用户友好的交互体验。

    一些酒店客房管理系统的demo

    - **HotelReservationAppAndroid-main**可能包含Android开发的元素,使用Android Studio,涉及XML布局设计,Android SDK,以及Fragment、Activity等概念。 - 移动端可能使用JSON进行数据交换,与服务器进行通信,...

    Android+Tomcat+MySql一万行代码模仿QQ聊天软件

    在这款聊天应用中,Android开发者需要熟练掌握Android SDK,包括Activity、Intent、Fragment、布局设计(如XML)、事件监听以及网络请求处理等技术。此外,由于涉及到聊天功能,还需要了解如何使用SQLite数据库进行...

    portal portalet 主题 皮肤 开发 IBM

    - **2.2.3 开发个性化的管理标签**:如上所述的个性化设置标签等,通过调整对应的JSP文件实现。 ##### 2.3 开发自适应分辨率的主题与皮肤 随着移动设备的普及,开发能够适应不同分辨率的主题变得尤为重要。 - **...

    Android应用源码CreativeCommons新闻客户端半成品.zip

    布局由上中下构成,中间为fragment,由管理者类进行切换,新闻端实现跟随嵌套listview,使用了git的一个topviewpager框架,下面是拥有头的listview,头再次嵌套viewpager,小点实现了点击切换新闻数据是从自己的...

    CreativeCommons新闻客户端半成品.zip

    布局由上中下构成,中间为fragment,由管理者类进行切换,新闻端实现跟随嵌套listview,使用了git的一个topviewpager框架,下面是拥有头的listview,头再次嵌套viewpager,小点实现了点击切换新闻数据是从自己的...

    android图书管理系统+javaweb后台服务器代码

    - **UI设计**:使用XML布局文件创建用户界面,包括ListView、EditText、Button等控件的使用,实现图书列表展示和用户交互。 - **Activity和Fragment**:Android应用的基本组成单元,处理用户界面和业务逻辑。 - *...

    基于JavaWeb和Android的基站发电稽核系统的设计.zip

    5. **异步处理与生命周期**:由于网络操作是耗时的,Android应用通常使用AsyncTask、Handler或现代的LiveData、Coroutines来实现后台任务,同时要考虑Activity和Fragment的生命周期,防止内存泄漏和状态丢失。...

    android毕业设计

    3. **布局设计**: XML文件用于定义用户界面,如LinearLayout、RelativeLayout、ConstraintLayout等布局管理器,帮助组织和定位应用的UI元素。 4. **AndroidManifest.xml**: 这是每个Android应用的关键配置文件,...

    MyDemo简单实用的引导页(补充)

    对于Android,可以使用`Activity`或`Fragment`,配合`ImageView`展示静态图片,或者使用`ViewPager`和`PageTransformer`实现滑动效果。iOS则常用`ViewController`和`UIPageViewController`。MyDemo可能采用了这些...

    安卓app开发教程.pdf

    接着,深入学习Android的UI布局,如线性布局、相对布局、网格布局等,以及常用的UI控件,如ListView、Fragment等,这些都是构建用户界面的基石。同时,掌握Android的文件操作,包括SQLite数据库的使用,是管理本地...

    android学习路线图

    Android 布局的设计和实现需要考虑到移动设备的屏幕尺寸、屏幕方向和键盘输入等因素。 Android UI 控件 Android UI 控件是指在 Android 应用程序中使用的用户界面控件,包括 ListView、Fragment 等。ListView 是一...

    JAVA开发总结.doc

    在Android中,可以使用TabLayout配合ViewPager实现选项卡切换效果,每个选项卡对应一个Fragment,方便内容的展示和切换。 3.2.2. 选项卡的高级实现 高级选项卡可能涉及到自定义滑动效果、动画过渡等,这需要自定义...

    android 学习路线大纲

    - Fragment管理:在多屏设备上使用Fragment。 - 数据存储:学习SQLite数据库,SharedPreferences,文件存储等。 - 网络编程:使用Android的HttpURLConnection或者第三方库如Volley,OkHttp进行网络请求。 - 异步...

    Android版个人理财系统

    开发者需要熟悉Android Studio IDE,理解Activity、Intent、Fragment等核心组件,以及XML布局文件的编写。 2. **多用户模式**:系统区分了管理员和用户两种角色,意味着它包含了权限管理功能。开发者需要实现用户...

    一个基于android的购物网站

    对于UI设计,可能采用了XML布局文件和自定义View控件,确保在各种屏幕尺寸上都能有良好的用户体验。 其次,MySQL是关系型数据库管理系统,用于存储和管理网站的数据,如商品信息、用户信息、订单等。在这个购物网站...

    安卓app开发学习教程.pdf

    5. **Android布局**:掌握LinearLayout、RelativeLayout、ConstraintLayout等布局管理器,用于设计用户界面。 6. **Android UI控件**:学习ListView、Fragment等常用组件的使用,ListView用于显示大量列表数据,...

    订单系统android客户端源码

    这个源码是构建一个完整的订单系统的关键部分,尤其当与对应的JSP网站源码结合时,可以形成一个从前端到后端的全栈解决方案。 在Android开发中,订单系统的客户端通常基于Java或Kotlin语言,使用Android Studio作为...

Global site tag (gtag.js) - Google Analytics