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

相关文章

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,