在传统 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/
分享到:
相关推荐
1. **嵌入Java代码**:JSP 页面中可以直接插入 Java 代码,使得动态功能的实现更为直观。 2. **自动转换为Servlet**:JSP 在运行时会被容器自动转换为对应的Servlet,无需手动配置。 3. **热部署**:当JSP文件被修改...
3. **模板布局**:Thymeleaf的Fragment可以用于构建复杂的页面布局,例如页眉、页脚、侧边栏等。通过`th:insert`或`th:replace`,可以在主模板中插入不同的Fragment来组合成完整的页面。 4. **模板继承**:除了...
底部导航栏是移动应用设计中常见的...综上所述,实现底部导航栏功能涉及界面设计、布局切换、事件监听等多个方面。开发者需遵循设计规范,利用合适的工具和框架,结合性能优化和无障碍设计,以提供用户友好的交互体验。
- **HotelReservationAppAndroid-main**可能包含Android开发的元素,使用Android Studio,涉及XML布局设计,Android SDK,以及Fragment、Activity等概念。 - 移动端可能使用JSON进行数据交换,与服务器进行通信,...
在这款聊天应用中,Android开发者需要熟练掌握Android SDK,包括Activity、Intent、Fragment、布局设计(如XML)、事件监听以及网络请求处理等技术。此外,由于涉及到聊天功能,还需要了解如何使用SQLite数据库进行...
- **2.2.3 开发个性化的管理标签**:如上所述的个性化设置标签等,通过调整对应的JSP文件实现。 ##### 2.3 开发自适应分辨率的主题与皮肤 随着移动设备的普及,开发能够适应不同分辨率的主题变得尤为重要。 - **...
布局由上中下构成,中间为fragment,由管理者类进行切换,新闻端实现跟随嵌套listview,使用了git的一个topviewpager框架,下面是拥有头的listview,头再次嵌套viewpager,小点实现了点击切换新闻数据是从自己的...
布局由上中下构成,中间为fragment,由管理者类进行切换,新闻端实现跟随嵌套listview,使用了git的一个topviewpager框架,下面是拥有头的listview,头再次嵌套viewpager,小点实现了点击切换新闻数据是从自己的...
- **UI设计**:使用XML布局文件创建用户界面,包括ListView、EditText、Button等控件的使用,实现图书列表展示和用户交互。 - **Activity和Fragment**:Android应用的基本组成单元,处理用户界面和业务逻辑。 - *...
5. **异步处理与生命周期**:由于网络操作是耗时的,Android应用通常使用AsyncTask、Handler或现代的LiveData、Coroutines来实现后台任务,同时要考虑Activity和Fragment的生命周期,防止内存泄漏和状态丢失。...
3. **布局设计**: XML文件用于定义用户界面,如LinearLayout、RelativeLayout、ConstraintLayout等布局管理器,帮助组织和定位应用的UI元素。 4. **AndroidManifest.xml**: 这是每个Android应用的关键配置文件,...
对于Android,可以使用`Activity`或`Fragment`,配合`ImageView`展示静态图片,或者使用`ViewPager`和`PageTransformer`实现滑动效果。iOS则常用`ViewController`和`UIPageViewController`。MyDemo可能采用了这些...
接着,深入学习Android的UI布局,如线性布局、相对布局、网格布局等,以及常用的UI控件,如ListView、Fragment等,这些都是构建用户界面的基石。同时,掌握Android的文件操作,包括SQLite数据库的使用,是管理本地...
Android 布局的设计和实现需要考虑到移动设备的屏幕尺寸、屏幕方向和键盘输入等因素。 Android UI 控件 Android UI 控件是指在 Android 应用程序中使用的用户界面控件,包括 ListView、Fragment 等。ListView 是一...
在Android中,可以使用TabLayout配合ViewPager实现选项卡切换效果,每个选项卡对应一个Fragment,方便内容的展示和切换。 3.2.2. 选项卡的高级实现 高级选项卡可能涉及到自定义滑动效果、动画过渡等,这需要自定义...
- Fragment管理:在多屏设备上使用Fragment。 - 数据存储:学习SQLite数据库,SharedPreferences,文件存储等。 - 网络编程:使用Android的HttpURLConnection或者第三方库如Volley,OkHttp进行网络请求。 - 异步...
开发者需要熟悉Android Studio IDE,理解Activity、Intent、Fragment等核心组件,以及XML布局文件的编写。 2. **多用户模式**:系统区分了管理员和用户两种角色,意味着它包含了权限管理功能。开发者需要实现用户...
对于UI设计,可能采用了XML布局文件和自定义View控件,确保在各种屏幕尺寸上都能有良好的用户体验。 其次,MySQL是关系型数据库管理系统,用于存储和管理网站的数据,如商品信息、用户信息、订单等。在这个购物网站...
5. **Android布局**:掌握LinearLayout、RelativeLayout、ConstraintLayout等布局管理器,用于设计用户界面。 6. **Android UI控件**:学习ListView、Fragment等常用组件的使用,ListView用于显示大量列表数据,...
这个源码是构建一个完整的订单系统的关键部分,尤其当与对应的JSP网站源码结合时,可以形成一个从前端到后端的全栈解决方案。 在Android开发中,订单系统的客户端通常基于Java或Kotlin语言,使用Android Studio作为...