天天看点

attribute test does not accept any expressions

最近在mac上做项目,很多老的项目总是报一些莫明其妙的问题,比如下面这个:

在index.jsp中有一个include标签:

<jsp:includeflush="true"page="tenCtaHomePageCommonInfo.do"></jsp:include> 

首页打开的时候,总是报这个错:

Stacktrace:] with root cause

org.apache.jasper.JasperException: /indexInfo/tenPointRankInfo.jsp (line: 64, column: 17) According to TLD or attribute directive in tag file, attribute test does not accept any expressions

at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)

at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408)

at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:149)

仔细看了一下,发现是.do跳转后的/indexInfo/tenPointRankInfo.jsp页面出现了问题,再百度上搜索出错信息后,发现如下解决方案:

方案一:

-----------------------------------------------------------------

解决方法有2个

1、将<%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%>

       更改为

        <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

2、使用JSTL的备用库,

       将<%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%>

       更改为

        <%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>

使用第二种方案,问题解决! 但是有一个问题,那就是所有涉及该问题的页面都要手动改一次(或者批量替换),感觉不是很好的解决办法。

方案二:

----------------------------------------------------------------

打开 web.xml,看到这样的写法,头部是这个:

<?xml version="1.0" encoding="UTF-8"?>

<web-app>

由于没有关于版本的描述,tomcat7默认就按新的规范要求了,所以在此处把版本指定为2.3即可,

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

重启服务,所有页面都正常了!

参考文章: http://hellodao.blog.sohu.com/136860462.html

http://hi.baidu.com/zhaotao_king/item/9de216c01be8e742a8ba944a

http://hi.baidu.com/tsuny/item/198a7616e72afde45f53b111