2016-05-19 3 views
1

さまざまなJSPページが、誤って使用していたtaglibをインポートしていませんでした。 たとえば、JSPで使用していたのは<c:if>...</c:if> でしたが、<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>はありませんでした。Tomcat 7のJspServletがtaglibのインポートがないJSPをコンパイルできません

JSPをTomcat 7でコンパイルしたときにエラーは発生しませんでした。 コンパイルされたJSPには、これらのタグを置き換えるのではなく、ちょうど<c:if>が含まれていました。

誰でも、JSPがこれらのケースで正常にコンパイルされないようにする方法を知っていますか?

私は、web.xmlに以下のJspServletの設定を使用:

<servlet> 
    <servlet-name>jsp</servlet-name> 
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> 
    <init-param> 
     <param-name>fork</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>xpoweredBy</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>mappedfile</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>genStringAsCharArray</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <load-on-startup>3</load-on-startup> 
</servlet> 

感謝を!

答えて

1

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>宣言は、<c:.../>タグを渡ったときに何をすべきかをtomcatのJSPCに伝えます。そして、この宣言が欠落していると、Tomcatはそれをどうしたらいいのか分からないので、それに触れません。

このチェックに依存する場合は、ビルド・プロセスでスクリプト・チェックを使用するか、JSPCを使用してビルド時にJSPをプリコンパイルし、結果のサーブレットで疑わしいテキスト/タグが発生していないか確認します。

可能なタグライブラリの数は、その名前と同様に無制限です。また、JSP-to-servletコンパイラーだけでなく、ページ上でより多くの処理を行うこともできます。名前空間付きのHTMLタグが残っているときにエラーを引き起こすオプションを見つけたことは一度もありません。この答えで与えられた理由から、私は決してそこに存在するとは考えていませんでした。

+0

これは役に立ちます。ありがとうございました! – Matt

関連する問題