EL表达式函数-获取字符串长度、截取字符串

别再直接写src了!Vue3 + iframe嵌入外部页面的几个实用技巧与避坑点 本文深入探讨了Vue3中iframe的高级应用技巧,包括Composition API封装、Teleport优化DOM结构、跨域通信解决方案等。针对企业级应用场景,提供了样式隔离、性能优化和错误处理等实用方案,帮助开发者避免常见陷阱,提升iframe在Vue3项目中的集成效率与稳定性。 阅读详情

1.fn:contains 判断字符串是否包含另外一个字符串 <c:iftest="${fn:contains

(name,searchString)}">   
2.fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关)<c:if

test="${fn:containsIgnoreCase(name,searchString)}">   
3.fn:endsWith 判断字符串是否以另外字符串结束 <c:iftest="${fn:endsWith

(filename,".txt")}">   
4.fn:escapeXml 把一些字符转成XML表示,例如<字符应该转为&lt;

${fn:escapeXml(param:info)}   
5.fn:indexOf 子字符串在母字符串中出现的位置 ${fn:indexOf(name,"-")}   
6.fn:join 将数组中的数据联合成一个新字符串,并使用指定字符格开 ${fn:join

(array,";")}   
7.fn:length 获取字符串的长度,或者数组的大小 ${fn:length

(shoppingCart.products)}   
8.fn:replace 替换字符串中指定的字符 ${fn:replace(text, "-","&#149;")}   
9.fn:split 把字符串按照指定字符切分 ${fn:split(customerNames,";")}   
10.fn:startsWith 判断字符串是否以某个子串开始 <c:iftest="${fn:startsWith

(product.id,"100-")}">   
11.fn:substring 获取子串 ${fn:substring(zip, 6,-1)}   
12.fn:substringAfter 获取从某个字符所在位置开始的子串${fn:substringAfter

(zip,"-")}   
13.fn:substringBefore 获取从开始到某个字符所在位置的子串

${fn:substringBefore(zip,"-")}   
14.fn:toLowerCase 转为小写${fn.toLowerCase(product.name)}   
15.fn:toUpperCase 转为大写字符${fn.UpperCase(product.name)}   
16.fn:trim 去除字符串前后的空格 ${fn.trim(name)} 

 

称呼Functions 标签库为标签库,倒不如称呼其为函数库来得更容易理解些。因为 Functions 标签库并没有提供传统的标签来为JSP 页面的工作服务,而是被用于 EL 表达式语句中。在 JSP2.0 规范下出现的 Functions 标签库为 EL表达式语句提供了许多更为有用的功能。 Functions 标签库分为两大类,共 16 个函数。
长度函数: fn:length
字符串处理函数: fn:contains 、 fn:containsIgnoreCase 、 fn:endsWith 、fn:escapeXml 、 fn:indexOf 、 fn:join 、 fn:replace 、 fn:split 、fn:startsWith 、 fn:substring 、 fn:substringAfter 、fn:substringBefore 、 fn:toLowerCase 、 fn:toUpperCase 、fn:trim
以下是各个函数的用途和属性以及简单示例。
9.7.1  长度函数 fn:length 函数
    长度函数 fn:length 的出现有重要的意义。在 JSTL1.0 中,有一个功能被忽略了,那就是对集合的长度取值。虽然java.util.Collection 接口定义了 size 方法,但是该方法不是一个标准的 JavaBean 属性方法(没有get,set 方法),因此,无法通过 EL 表达式“ ${collection.size} ”来轻松取得。
fn:length 函数正是为了解决这个问题而被设计出来的。它的参数为 input,将计算通过该属性传入的对象长度。该对象应该为集合类型或 String 类型。其返回结果是一个 int类型的值。下面看一个示例。
<%ArrayList arrayList1 = new ArrayList();
                           arrayList1.add("aa");
                           arrayList1.add("bb");
                           arrayList1.add("cc");
%>
<%request.getSession().setAttribute("arrayList1",arrayList1);%>
${fn:length(sessionScope.arrayList1)}
假设一个 ArrayList 类型的实例“ arrayList1 ”,并为其添加三个字符串对象,使用 fn:length函数后就可以取得返回结果为“ 3 ”。
9.7.2  判断函数 fn:contains 函数
fn:contains 函数用来判断源字符串是否包含子字符串。它包括 string 和 substring 两个参数,它们都是String 类型,分布表示源字符串和子字符串。其返回结果为一个 boolean 类型的值。下面看一个示例。
${fn:contains("ABC", "a")}<br>
${fn:contains("ABC", "A")}<br>
前者返回“ false ”,后者返回“ true ”。
9.7.3 fn:containsIgnoreCase 函数
fn:containsIgnoreCase 函数与 fn:contains 函数的功能差不多,唯一的区别是fn:containsIgnoreCase 函数对于子字符串的包含比较将忽略大小写。它与 fn:contains 函数相同,包括string 和 substring 两个参数,并返回一个 boolean 类型的值。下面看一个示例。
${fn:containsIgnoreCase("ABC","a")}<br>
${fn:containsIgnoreCase("ABC","A")}<br>
前者和后者都会返回“ true ”。
9.7.4  词头判断函数 fn:startsWith 函数
fn:startsWith 函数用来判断源字符串是否符合一连串的特定词头。它除了包含一个 string 参数外,还包含一个subffx 参数,表示词头字符串,同样是 String 类型。该函数返回一个 boolean 类型的值。下面看一个示例。
${fn:startsWith ("ABC","ab")}<br>
${fn:startsWith ("ABC","AB")}<br>
前者返回“ false ”,后者返回“ true ”。
9.7.5  词尾判断函数 fn:endsWith 函数
fn:endsWith 函数用来判断源字符串是否符合一连串的特定词尾。它与 fn:startsWith 函数相同,包括 string和 subffx 两个参数,并返回一个 boolean 类型的值。下面看一个示例。
${fn:endsWith("ABC", "bc")}<br>
${fn:endsWith("ABC", "BC")}<br>
前者返回“ false ”,后者返回“ true ”。
9.7.6  字符实体转换函数 fn:escapeXml 函数
fn:escapeXml 函数用于将所有特殊字符转化为字符实体码。它只包含一个 string 参数,返回一个 String类型的值。
9.7.8  字符匹配函数 fn:indexOf 函数
fn:indexOf 函数用于取得子字符串与源字符串匹配的开始位置,若子字符串与源字符串中的内容没有匹配成功将返回“ -1 ”。它包括string 和 substring 两个参数,返回结果为 int 类型。下面看一个示例。
${fn:indexOf("ABCD","aBC")}<br>
${fn:indexOf("ABCD","BC")}<br>
前者由于没有匹配成功,所以返回 -1 ,后者匹配成功将返回位置的下标,为 1 。
${fn:substring(str,0,3)}此函数为截取字符串的函数

EL表达式截取字符串的函数说明 引入标签库 <%@tablib uri=http://java.sun.com/jsp/jstl/functions prefix=fn %> ${fn:substring(你要截取的字符串),beginIndex,endIndex} 下面是JSTL中自带的方法列表以及其描述 函数名 函数说明 使用举例 fn:contains 判断字符串是否包含另外一个字符串 fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关) <c:if test=${ 立即下载

相关推荐

机器学习项目(四)疫情期间网民情绪识别 (一)

疫情期间网民情绪识别 赛题背景 2019新型冠状病毒(2019-nCoV)感染的肺炎疫情发生对人们生活生产的方方面面产生了重要影响,并引发国内舆论的广泛关注,众多网民参与疫情相关话题的讨论。为了帮助政府掌握真实社会舆论情况,科学高效地做好防控宣传和舆情引导工作,本赛题针对疫情相关话题开展网民情绪识别的任务。 数据介绍 训练集 10万条 无标记样本90万条 测试集1万条 数据集依据与“新冠肺炎”相关...

qq_33357094的博客 8970

EL表达式截取字符串

页面显示的文本过长时,需要对字符串进行截取。不想去该后台代码。可以通过EL表达式来截取字符串。<!--判断字符串的长度,截取字符串--> <c:if test="${fn:length(obj.instruction) > 120 }"> ${fn:substring(obj.instruction, 0, 120) }..... </c:if> <c:if test="${fn:le

return 1513

RISC-V嵌入式开发实战:手把手教你读懂并修改CH32V103的链接脚本(.ld)

本文深入解析RISC-V嵌入式开发中CH32V103链接脚本(.ld)的编写与优化技巧。从内存布局、段分配到实战调试,详细讲解如何解决程序跑飞、变量异常等典型问题,特别针对RISC-V架构的gp寄存器优化、中断向量表处理等特性提供专业指导,帮助开发者充分利用64KB Flash和20KB RAM资源。

weixin_33704234的博客 175

EL表达式中可使用的函数API

fn:contains 判定字符串是否包含另外一个字符串 fn:containsIgnoreCase 判定字符串是否包含另外一个字符串(大小写无关) fn:endsWith 判定字符串是否以另外字符串结束 fn:escapeXml 把一些字符转成XML表示,例如 fn:indexOf 子字符串在母字符串中出现的位置 ${fn:indexOf(name, "-")} fn:join 将数组中的

988

手把手教你搭建三端口DC-DC变换器(含Boost+Buck电路实战)

本文详细介绍了如何从零开始搭建三端口DC-DC变换器,涵盖Boost和Buck电路的硬件设计、元器件选型、电路板布局、焊接技巧、控制系统设计与调试等关键步骤。通过实战案例和优化建议,帮助工程师避开常见陷阱,提升系统效率和稳定性,适用于光伏、储能等电力电子应用场景。

x8y9z0的博客 929

Codesys电子凸轮从入门到应用:手把手教你用MC_CamIn/MC_CamOut实现主从轴同步

本文详细介绍了如何在Codesys平台上使用MC_CamIn和MC_CamOut功能块实现电子凸轮的主从轴同步控制。从环境配置、轴使能到凸轮表创建与动态切换,提供了完整的程序编写指南和调试技巧,帮助工程师快速掌握工业自动化中的高精度运动控制技术。

weixin_26878995的博客 277

vue 给iframe设置src_vue项目中,iframe的src动态赋值

可以类似这样:/*** 动态创建iframe* @param dom 创建iframe的容器,即在dom中创建iframe。dom能够是div、span或者其它标签。* @param src iframe中打开的网页路径* @param onload iframe载入完后触发该事件。能够为空* @return 返回创建的iframe对象*/createIframe(dom, src, onload...

weixin_39567169的博客 2504

社区版 ABAP MCP 能不能读取 SAP S/4HANA 公有云开发对象,我的判断是能试,但不能当成已被 SAP 背书的标准通道

文章摘要:当前存在多个社区项目(如mcp-abap-adt、mcp-abap-abap-adt-api等)通过包装ABAP ADT能力为MCP Server,使AI开发工具能读取ABAP对象。这些项目技术上依赖ADT HTTP API或SAP官方ADT language server,但针对SAP S/4HANA Cloud Public Edition的完整适配仍存在挑战。SAP官方已通过VS Code扩展提供ADT MCP能力,而社区方案在云环境下需遵循ABAP Cloud的严格限制,仅能访问已授权的开

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 87

Vue进阶(幺叁玖):iframe在更改了src之后对应的网页调用后台方法2次

在前期博文《Vue进阶(六十四):iframe在更改了src之后对应的网页并未刷新》,讲解了解决iframe下src变化后,页面内容未刷新问题,解决方法是在更改iframe src属性值之前加上document.getElementById(iframe的id).contentWindow.location.reload(true);处理逻辑,但是在后续的项目开发过程中发现,以上解决方法会引入一个新的问题:页面relaod之后,相当于页面做了刷新处理,就会调用页面请求后台方法2次,会给服务器造成请求压力。故

IT全栈 华强工作室 3077

Simulink仿真模块 -Scope

如果您将 Scope 模块放在具有锁定链接的库或者锁定的库中,当尝试打开示波器窗口时,Simulink 会显示错误。要显示某个库模块中的内部数据,请为库模块添加一个输出端口,然后将此端口连接到您模型中的 Scope 模块。当您在示波器内可视化多个基于帧的信号时,部分帧大小为 1 的信号采样可能不会显示。当在示波器内可视化多个基于帧的信号时,部分帧大小为 1 的信号采样可能不会显示。如果在仿真开始时波形视图关闭,则当在仿真后打开波形视图时,波形视图将显示附加的输入信号的仿真结果。

jk_101的博客 3790

Ubuntu系统下MRIcroN、FSL6.0.5、Freesurfer7.1.1、ANTs、MRtrix3、AFNI的安装详解——核磁共振数据处理必备

Ubuntu系统下MRIcroN、FSL6.05、Freesurfer7.1.1、MRtrix3、AFNI、ANTs的安装详解一、安装MRIcroN二、 FSL6.0.5完整安装与FSLeyes等Not Found修复Anaconda与虚拟环境(所有操作均在root下)获取最新版Anaconda3安装Anaconda3配置所有用户可用去掉恼人的base创建虚拟环境FSL与FSLeyes安装(所有操作均在root下)下载FSL安装FSL添加环境变量到/etc/bash.bashrc末尾 (ubuntu)或者

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 6085

Vue3 iframe src为空字符串引发页面刷新:根因、防御与排查实战

在Web前端工程中,iframe是嵌入第三方页面、报表或低代码模块的常用技术,但其src属性的取值却暗藏陷阱。当src被绑定为空字符串时,浏览器会将其解析为当前页面URL,导致iframe自发加载整个应用,在Vue Router history模式下配合SPA fallback便会出现整页白屏、刷新乃至跳回登录页的诡异问题。理解URL解析规则、掌握合法的地址校验机制,是稳定构建嵌入场景的关键前提。基于computed计算属性进行白名单过滤,并借助about:blank安全兜底,能够有效规避非法src引发的连

weixin_33978722的博客 120

Python 爬虫实战:手机应用商店评论数据爬取与分析

移动应用市场蓬勃发展,用户的评论数据包含了大量有价值的信息,如用户满意度、功能反馈、改进建议等。通过分析这些评论,我们可以挖掘应用的优缺点,甚至预测用户趋势。由于 Apple App Store 评论是动态加载的,我们使用。本篇博客将详细介绍如何使用 Python 爬取。爬取大量数据时,可能会遇到反爬机制。库获取 Google Play 评论。评论数据是动态加载的,需要使用。

2201_76125261的博客 2322

vue使用iframe踩坑

需求:通过iframe写epub阅读器 由于src需要加密,所以在src拼接的时候直接调用函数获取参数 BUG:每次页面一动就会重新获取加载一次iframe,导致页面晃动 解决方案:把方法值赋值给变量,在src拼接中直接使用变量,而不是直接使用函数获取 心得:动态加载的数据,一般赋值给变量,而不要直接调取方法获取 ...

star星辉的博客 1391

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

vue组件与iframe通信,防止多次触发

vue组件调用iframe

weixin_42674490的博客 1899

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

iframe的src指向的内容不刷新的解决办法之一

iframe的src的值发生改变,才会刷新iframe里面的内容. <iframe :src="baseUrl" height="100%" frameborder="0" scrolling="auto" width="100%"></iframe> this.baseUrl = this.baseUrl + `&time=${new Date().getTime()` 给url后面通过问号传值,传一个当前时间, 这个值并没有其他用处,只是为了改变src的值. i

qq_14993591的博客 1582

记录一下iframe的坑

关于为什么要用iframe,主要是因为几个页面有一个共同的导航栏,为了防止代码重复所以使用了iframe。 1.iframe父子页面DOM访问 从父页面直接访问子页面的DOM和从子页面直接访问父页面的DOM都是找不到的,由于我比较习惯用IQ所以以下代码都是JQ语句 1.1 如何在父页控制子页面的DOM 父页面js:$("iframe").contents().find(".子页面DOM节...

棉花没有糖的博客 599

【vue】iframe实战技巧:从刷新到传参的完整解决方案

本文深入探讨了在Vue项目中集成iframe的实战技巧,重点解决了页面缓存不刷新和跨域数据通信两大核心难题。文章提供了利用Vue的`key`属性强制刷新和动态修改`src`绕过缓存两种方案,并详细介绍了通过URL传参、PostMessage以及共享Vuex状态三种通信方式,帮助开发者高效、安全地在现代化框架中使用iframe组件。

weixin_28025327的博客 606

Vue + 微前端混合架构:从碎片化到一体化的演进之路

项目不仅解决了当前多系统管理的碎片化问题,更通过同步导航、精细化权限、全链路监控等设计,为企业级应用集成提供了可复用的技术范式,同时为未来架构演进(微前端全面落地、组件库统一)奠定基础。通过props中的参数判断是否为微应用模式,从而动态调整路由前缀和挂载位置,既保证子应用能独立开发调试,又能无缝嵌入主应用,是微前端子应用适配的核心逻辑。未来,随着微前端、低代码等技术的融合,该架构将进一步具备 “生态化、智能化” 能力,成为企业中后台系统的核心支撑平台。

SOHU_TECH的博客 453

Vue3与Unity WebGL通过iframe集成:双向通信、性能优化与实战避坑指南

在现代Web开发中,将复杂3D可视化内容集成到单页应用(SPA)是一个常见需求。其核心原理是利用iframe的沙箱隔离特性,为Unity WebGL等独立运行时提供一个安全的嵌入环境。这项技术的价值在于,它允许不同技术栈(如Vue.js前端框架与Unity游戏引擎)高效协同,复用现有资产,快速构建出交互丰富的数字孪生或产品展示应用。通过标准化的postMessage API实现双向通信,前端可以控制3D场景的加载与交互,同时接收来自模型内部的实时事件反馈。本文聚焦于Vue3与Unity WebGL的ifra

weixin_30682415的博客 382

告别原生iframe!用vue-wxlogin优雅封装微信登录组件,实现样式自定义与状态管理

本文详细介绍了如何使用vue-wxlogin插件优雅封装微信登录组件,解决原生iframe方案的样式污染和状态管理问题。通过组件化封装、样式自定义和状态管理集成,开发者可以快速实现美观且高效的微信扫码登录功能,提升用户体验和开发效率。

weixin_30835649的博客 349

Vue2项目打印方案实战:vue-print-nb指令化集成与样式控制

在前端开发中,打印功能是管理后台、报表系统等场景的常见需求。其核心原理是通过样式隔离与DOM操作,确保打印内容格式精准、不受页面其他元素干扰。技术价值在于提升用户体验与数据呈现的专业性,广泛应用于订单、合同、数据报表等内容的输出。本文聚焦于Vue2生态,深入解析如何通过vue-print-nb这一指令化方案,实现打印区域的精确控制与样式管理,并涵盖动态内容处理、批量打印等高级场景。

weixin_33985507的博客 382

无界微前端框架:如何轻松构建现代化企业级前端架构

无界微前端框架是一款基于Web Components + iframe技术栈的现代化微前端解决方案,它通过原生浏览器能力实现了真正的应用隔离,让前端架构升级变得前所未有的简单。无论你是要重构单体应用还是构建全新的微前端系统,无界都能提供极致的开发体验和运行性能。 ## 项目概述与价值主张 在当今复杂的前端开发环境中,微前端架构已经成为大型应用开发的必然选择。然而,传统的微前端方案往往存在样式隔

gitblog_00365的博客 871

iframe标签用法

iframe <iframe src='url'></iframe> 常用属性 name ‘名称’ width height src frameborder 边框 1,.0 align 对齐 scrolling 滚动条 (yes ,no,auto) sandbox 启用一系列对iframe中内容 的限制 marginwidth 左边和右边的边距 marginheight 顶部和底部 的边距 srcdoc iframe中显示的页面HTML内容

qq_28134589的博客 621
上一篇: java通用DAO
下一篇: EL表达式-自定义函数
轻鸿飘羽
博客等级 码龄16年 124粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值