很奇怪的EL表达式问题! fn:escapeXml(string) 不能用

时间:2022-09-04 19:04:17
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

都引入了,而且fn:indexOf(string, substring) 和 fn:length(item) 等都能正常使用,只有escapeXml这个不能用!! 大家有没有遇到相似的问题? 还请各位高手指点!

报的错是:

org.apache.jasper.JasperException: javax.servlet.jsp.el.ELException: An error occurred while evaluating function "fn:escapeXml"

java.lang.NoSuchMethodError: org.apache.taglibs.standard.tag.common.core.Util.escapeXml(Ljava/lang/String;)Ljava/lang/String;

10 个解决方案

#1


貌似没什么问题。能把具体代码贴来看看吗

#2


没问题,是你搞错了吧
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
</head>
<body>
<c:set var="str" value="abc1134" />
${fn:escapeXml(str)}
</body>
</html>

#3


 没用过    不做评论!

#4


引用 2 楼 blazingfire 的回复:
没问题,是你搞错了吧

Java code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html; charset=UTF-8" pageE……


奇怪,我把代码原样拷进去直接把“${fn:escapeXml(str)} ” 原样输出了! 是不是我少导哪个包了呢??

#5


引用 1 楼 ousyuryu 的回复:
貌似没什么问题。能把具体代码贴来看看吗


是这样,我用2楼的代码试了一下,直接把“${fn:escapeXml(str)} ” 原样输出来了,要是在页面顶部加一句 <%@page language="java" isELIgnored="false" %>
就和我说的情况一样了,呵呵,只有${fn:escapeXml(str)}不能用,别的一些取长度的函数没问题!



我觉得是不是和我系统当前的一些包冲突了呢? 但一直没查出原因,还请朋友们帮帮忙! 多谢了!

#6


好像
跟 isELIgnored="false" 有关,你设成true试下

#7


引用 6 楼 ousyuryu 的回复:
好像
跟 isELIgnored="false" 有关,你设成true试下


我重新建了一个工程,测试2楼的代码时提示这个错:
The absolute uri: http://java.sun.com/jsp/jstl/functions cannot be resolved in either web.xml or the jar files deployed with this application

jstl-1.1.0.jar standard.jar struts-core-1.3.8.jar struts-el-1.3.8.jar struts-taglib-1.3.8.jar

我导了这几个包,是不是还缺哪些包呢?

#8


引用 6 楼 ousyuryu 的回复:
好像
跟 isELIgnored="false" 有关,你设成true试下


谢谢各位!! 问题解决了! 就是包的问题,我再用新工程和旧工程里的对比一下吧。。。 多谢了!!

#9


引用 2 楼 blazingfire 的回复:
没问题,是你搞错了吧

Java code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html; charset=UTF-8" pageE……


太感谢大家了! 问题解决了! 多谢了!

#10


fn:escapeXml这什么意思?

#1


貌似没什么问题。能把具体代码贴来看看吗

#2


没问题,是你搞错了吧
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
</head>
<body>
<c:set var="str" value="abc1134" />
${fn:escapeXml(str)}
</body>
</html>

#3


 没用过    不做评论!

#4


引用 2 楼 blazingfire 的回复:
没问题,是你搞错了吧

Java code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html; charset=UTF-8" pageE……


奇怪,我把代码原样拷进去直接把“${fn:escapeXml(str)} ” 原样输出了! 是不是我少导哪个包了呢??

#5


引用 1 楼 ousyuryu 的回复:
貌似没什么问题。能把具体代码贴来看看吗


是这样,我用2楼的代码试了一下,直接把“${fn:escapeXml(str)} ” 原样输出来了,要是在页面顶部加一句 <%@page language="java" isELIgnored="false" %>
就和我说的情况一样了,呵呵,只有${fn:escapeXml(str)}不能用,别的一些取长度的函数没问题!



我觉得是不是和我系统当前的一些包冲突了呢? 但一直没查出原因,还请朋友们帮帮忙! 多谢了!

#6


好像
跟 isELIgnored="false" 有关,你设成true试下

#7


引用 6 楼 ousyuryu 的回复:
好像
跟 isELIgnored="false" 有关,你设成true试下


我重新建了一个工程,测试2楼的代码时提示这个错:
The absolute uri: http://java.sun.com/jsp/jstl/functions cannot be resolved in either web.xml or the jar files deployed with this application

jstl-1.1.0.jar standard.jar struts-core-1.3.8.jar struts-el-1.3.8.jar struts-taglib-1.3.8.jar

我导了这几个包,是不是还缺哪些包呢?

#8


引用 6 楼 ousyuryu 的回复:
好像
跟 isELIgnored="false" 有关,你设成true试下


谢谢各位!! 问题解决了! 就是包的问题,我再用新工程和旧工程里的对比一下吧。。。 多谢了!!

#9


引用 2 楼 blazingfire 的回复:
没问题,是你搞错了吧

Java code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html; charset=UTF-8" pageE……


太感谢大家了! 问题解决了! 多谢了!

#10


fn:escapeXml这什么意思?