websphere中jsp使用el表达式 ${fn.replace}报错- 'fn:replace' not found

Posted 青 • 原木

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了websphere中jsp使用el表达式 ${fn.replace}报错- 'fn:replace' not found相关的知识,希望对你有一定的参考价值。

websphere发布应用,jsp的el表达式 ${fn.replace}报错:

[10/24/17 19:02:45:181 CST] 00000038 servlet E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: An exception was thrown by one of the service methods of the servlet [/WEB-INF/jsp/modules/xx/xx.jsp] in application [xx_war]. Exception created : [javax.el.ELException: Function \'fn:replace\' not found

at org.apache.el.lang.ExpressionBuilder.visit(ExpressionBuilder.java:197)
at

错误原因:websphere不能正确处理单引号包裹的el表达式的函数。

 

解决方法:在el表达式外面用双引号包裹,而不是单引号。

例子如下:

有问题的jsp代码

<div  id =\'${fn:replace(pdata.attributes.type, "|", "_")}_invest${ind.index}\' ></div>

修改为:

<div  id ="${fn:replace(pdata.attributes.type, \'|\', \'_\')}_invest${ind.index}" ></div>

 

 

参考:

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014934503

 

以上是关于websphere中jsp使用el表达式 ${fn.replace}报错- 'fn:replace' not found的主要内容,如果未能解决你的问题,请参考以下文章

EL表达式

el用fn:substring截取,indexof也要声明是fn的否则会错误

EL表达式里面不能直接使用list.size()得到长度,

el表达式 jsp页面取list的长度

JSP ELEL表达式 获取list长度/不用循环,EL在List中直接获取第一项的内容/EL获取Map的键,Map的值

EL 表达式截取字符串/替换字符/……