天天看點

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