<%@ 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;

解决方案 »

  1.   

    没问题,是你搞错了吧
    <!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>
      

  2.   


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

  3.   


    是这样,我用2楼的代码试了一下,直接把“${fn:escapeXml(str)} ” 原样输出来了,要是在页面顶部加一句 <%@page language="java" isELIgnored="false" %>
    就和我说的情况一样了,呵呵,只有${fn:escapeXml(str)}不能用,别的一些取长度的函数没问题!我觉得是不是和我系统当前的一些包冲突了呢? 但一直没查出原因,还请朋友们帮帮忙! 多谢了!
      

  4.   

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

  5.   


    我重新建了一个工程,测试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 applicationjstl-1.1.0.jar standard.jar struts-core-1.3.8.jar struts-el-1.3.8.jar struts-taglib-1.3.8.jar我导了这几个包,是不是还缺哪些包呢?