jsp include 和EL函数为菜单栏动态添加样式

2024-06-03 11:38

本文主要是介绍jsp include 和EL函数为菜单栏动态添加样式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在模块中出现公用的菜单栏,如果每一页都单独有一个菜单栏维护起来很麻烦,每次增加一个菜单的话,菜单中的每个页面都需要修改菜单栏,稍有不慎,就会出现样式不一样的情况。

这时候就需要用到jsp的包含机制。包含机制有两种:include指令和<jsp:include/>标准动作。

<%@ include file=“ /jsp/widget/user/menuNavl.jsp"%>

<jsp:include page=“ /jsp/widget/user/menuNavl.jsp”/>

include指令告诉容器:复制所包含文件中的所有内容,再把它黏贴到这个文件中,而且就放在其中。

<jsp:include>标准动作和include指令看上去一样,而且通常有相同的结果,但是看生成的servlet,就会发现不同。

下图是菜单页面menuNavl.jsp,为简单起见,我只截取了其中一部分

jsp include 和EL函数为菜单栏动态添加样式

下图为生成的servlet,menuNavl_jsp.java

jsp include 和EL函数为菜单栏动态添加样式

使用include指令生成的servlet,include指令取menuNavl.jsp的内容,在转换前放在include指令引用页面。

jsp include 和EL函数为菜单栏动态添加样式

使用<jsp:include/>标准动作的JSP生成的servlet,menuNavl.jsp页面不放在引用页面生成的servlet中,是一个运行时调用。

jsp include 和EL函数为菜单栏动态添加样式

也就是说,include指令在转换时插入menuNavl.jsp的源代码,而<jap:include/>标准动作在运行时插入menuNavl.jsp的响应。

在使用include指令的时候在第一次请求的时候需要做转换,从第二次请求开始,就再没有额外的运行时开销了。

在<jsp:include/>标准动作,转换时没有做多少工作,但是在每次请求的时候需要做拼接,每次请求都有一些运行时开销。

使用<jsp:include/>标准动作的好处是能保证每次都能看到最新的内容,include指令在现在新的容器变化可见中也能重新转换最新文件。

因此在平常使用中推荐使用include指令包含引用JSP。

现在有这样一个应用场景,JSP包含一个公共的菜单列表页面,这个菜单列表页面,点击菜单跳转到目标页面,需要根据跳转的页面,在菜单上把相应页面的名称颜色做改变。

我们引入EL函数就能帮我们实现需求。

实现EL函数你需要四步实现:

一、编写有一个公共静态方法的Java类。

有函数的类,必须是公共、静态的方法。

jsp include 和EL函数为菜单栏动态添加样式

二、编写一个标记库描述文件(TLD)

jsp include 和EL函数为菜单栏动态添加样式

三、在JSP中放一个taglib指令。

四、使用EL调用函数。

jsp include 和EL函数为菜单栏动态添加样式

根据判断的结果,后台设定menuNavl属性的值,如果返回的值和userManage的值相等,文字的样式中就添加on的样式,这样就可以根据访问的页面动态返回需要的样式。

本文为头条号作者发布,不代表今日头条立场。

这篇关于jsp include 和EL函数为菜单栏动态添加样式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1026884

相关文章

Java数组动态扩容的实现示例

《Java数组动态扩容的实现示例》本文主要介绍了Java数组动态扩容的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1 问题2 方法3 结语1 问题实现动态的给数组添加元素效果,实现对数组扩容,原始数组使用静态分配

MyBatis-Plus使用动态表名分表查询的实现

《MyBatis-Plus使用动态表名分表查询的实现》本文主要介绍了MyBatis-Plus使用动态表名分表查询,主要是动态修改表名的几种常见场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录1. 引入依赖2. myBATis-plus配置3. TenantContext 类:租户上下文

pandas使用apply函数给表格同时添加多列

《pandas使用apply函数给表格同时添加多列》本文介绍了利用Pandas的apply函数在DataFrame中同时添加多列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录一、Pandas使用apply函数给表格同时添加多列二、应用示例一、Pandas使用apply函

Python中Namespace()函数详解

《Python中Namespace()函数详解》Namespace是argparse模块提供的一个类,用于创建命名空间对象,它允许通过点操作符访问数据,比字典更易读,在深度学习项目中常用于加载配置、命... 目录1. 为什么使用 Namespace?2. Namespace 的本质是什么?3. Namesp

Java中的随机数生成案例从范围字符串到动态区间应用

《Java中的随机数生成案例从范围字符串到动态区间应用》本文介绍了在Java中生成随机数的多种方法,并通过两个案例解析如何根据业务需求生成特定范围的随机数,本文通过两个实际案例详细介绍如何在java中... 目录Java中的随机数生成:从范围字符串到动态区间应用引言目录1. Java中的随机数生成基础基本随

C#借助Spire.XLS for .NET实现Excel工作表自动化样式设置

《C#借助Spire.XLSfor.NET实现Excel工作表自动化样式设置》作为C#开发者,我们经常需要处理Excel文件,本文将深入探讨如何利用C#代码,借助强大的Spire.XLSfor.N... 目录为什么需要自动化工作表样式使用 Spire.XLS for .NET 实现工作表整体样式设置样式配置

MySQL中如何求平均值常见实例(AVG函数详解)

《MySQL中如何求平均值常见实例(AVG函数详解)》MySQLavg()是一个聚合函数,用于返回各种记录中表达式的平均值,:本文主要介绍MySQL中用AVG函数如何求平均值的相关资料,文中通过代... 目录前言一、基本语法二、示例讲解1. 计算全表平均分2. 计算某门课程的平均分(例如:Math)三、结合

基于Nacos实现SpringBoot动态定时任务调度

《基于Nacos实现SpringBoot动态定时任务调度》本文主要介绍了在SpringBoot项目中使用SpringScheduling实现定时任务,并通过Nacos动态配置Cron表达式实现任务的动... 目录背景实现动态变更定时机制配置化 cron 表达式Spring schedule 调度规则追踪定时

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Spring Gateway动态路由实现方案

《SpringGateway动态路由实现方案》本文主要介绍了SpringGateway动态路由实现方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随... 目录前沿何为路由RouteDefinitionRouteLocator工作流程动态路由实现尾巴前沿S