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=${ 立即下载

相关推荐

《QMT量化实战系列》支持自定义筛选与排序的多因子策略,实测年化收益超100% (1)

公众号推出《QMT量化实战》系列,通过多维度、多策略、多场景讲解QMT量化平台应用,每期附代码解读。本期复现《支持自定义筛选与排序的多因子策略》,策略包含三大核心模块:1. 通过Tushare获取30+财务因子数据;2. 提供灵活筛选机制(支持排除ST股、次新股及特定板块);3. 创新性多因子加权排序系统(支持自定义因子权重组合)。交易逻辑包含动态调仓机制,当持仓标的排名低于阈值时触发卖出。该策略具有高度可配置性,适合不同风险偏好的投资者。(149字)

qq_46262068的博客 1730

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

PADS VX2.7学习记录05-PADS Layout设计文件Gerber等输出整理

在“PDF Document”栏中,依次选中除REF-TOP和REF-BOT之外的文件,单击图标,将其余PDF Document文件进行删除,如图所示。然后单击【生成PDF】按钮,即可创建一份PDF格式的位号图。

tianpu2320959696的博客 1025

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

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

988

手把手教你学Simulink--基于火电发电系统的场景实例:燃煤发电机组的锅炉-汽轮机协调控制仿真

本文介绍了使用Simulink构建燃煤发电机组锅炉-汽轮机协调控制系统的仿真方法。系统包含锅炉子系统、汽轮机子系统和协调控制器三大模块,通过传递函数建模和PID控制策略实现协调控制。详细说明了从模型创建、子系统设置到控制器设计的完整流程,包括燃料供给、汽轮机模型和数据处理等关键环节。最后通过性能评估验证系统响应速度、参数稳定性和效率等指标。该仿真方法为火电系统控制策略设计和优化提供了有效工具。

MHD0815的博客 1153

Xilinx FPGA 100G RDMA开发实战:基于AXI Lite配置的ROCE V2高速通信系统搭建

本文详细介绍了在Xilinx FPGA上搭建100G ROCE V2高速通信系统的实战过程。通过分析RDMA技术优势与FPGA实现的必要性,重点阐述了基于AXI Lite接口配置ERNIC IP核的关键步骤,包括硬件系统构建、驱动开发及与商用网卡的互通测试,旨在实现兼具高性能与灵活性的网络加速方案。

js777的博客 576

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

图解说明JLink驱动与目标板电源匹配的关键细节

深入讲解JLink驱动安装及使用过程中,如何正确匹配目标板电源,避免常见通信故障。通过图解方式清晰展示关键连接细节,确保调试稳定可靠,是嵌入式开发中不可或缺的实战经验分享。

weixin_42173218的博客 431

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

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

IT全栈 华强工作室 3077

HQChart实战教程19 - PC端分时图定制tooltip

HQChart实战教程19 - PC端分时图定制tooltip序效果步骤1. 创建一个外部tooltip的div2. 注册标题绘制事件3. 标题绘制回调函数格式说明eventdataobjtooltip显示函数HQChart代码地址 序 hqchart分时图是不带tooltip, 如果我们需要在PC端页面显示tooltip,我们可以通过注册绘制标题事件,来自己做一个div显示数据。 参考教程HQChart实战教程7-自定义显示手势点击K线显示信息 效果 步骤 1. 创建一个外部tooltip的div 在外

小银 2447

Unity零基础到进阶 | Unity Shader 深度硬核解析

Unity Shader 是运行在GPU上的可编程渲染程序,是整个引擎渲染体系的算法核心。它通过 Unity 封装的 ShaderLab 语法 + GPU 原生 HLSL 语言编写,定义了「网格数据如何经过光照计算、纹理采样、几何变换、混合测试,最终转化为屏幕像素颜色」的完整规则。 通俗来说:Shader 决定物体「怎么画」,材质(Material)只是 Shader 的参数实例,决定「用什么画」。没有 Shader,材质就是无渲染能力的空壳;没有材质,Shader 无法落地到具体物体。

努力前行,总会成为自己心中的那道光 1万+

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

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

weixin_33978722的博客 120

AI智算-K8s如何利用IB RDMA网络加速大模型分布式训练

在AI人工智能领域,大模型的微调是提升性能不可或缺的一环。通过结合InfiniBand RDMA网络的高速互联、Kubernetes的云原生容器化部署,以及智能算力调度平台,可以打造一个高效、灵活且可扩展的分布式训练环境。

Kason_iWiki 816

vue使用iframe踩坑

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

star星辉的博客 1391

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

vue组件调用iframe

weixin_42674490的博客 1899

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

记录一下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、付费专栏及课程。

余额充值