0

次のようなjspファイルがあります。

<html>
<body>
    <div>location: ${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/</div>
    <div>(should have "verdagon.net" somewhere in there)</div>

    <div>Included stuff should appear below here:</div>
    <jsp:include page="toinclude.html"/>
</body>
</html>

WEB-INFディレクトリにweb.xmlがない場合、正しく出力されます。

location: http://verdagon.net:80/strnowebxml/
(should have "verdagon.net" somewhere in there)
Included stuff should appear below here:
I'm included!

しかし、WEB-INFディレクトリを追加し、これだけを含む必要最低限​​のweb.xmlを配置すると、

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
</web-app>

そのweb.xmlが存在するだけで、次の出力が得られます。

location: ${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/
(should have "verdagon.net" somewhere in there)
Included stuff should appear below here:
I'm included!

問題:これらのドル記号の置き換えは発生していません。

奇妙なことに、jsp:includeが正常に実行されているため、JSPが実行されていることがわかります。

web.xmlがないときにJSPが機能し、追加すると壊れてしまう理由を知っている人はいますか?

4

1 に答える 1

0

あはは!バージョンの不一致があったことが判明しました。tomcat / conf / web.xmlのグローバルweb.xmlのトップラインは、次のとおりです。

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

でも私のトップラインは

<web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

答え:バージョンが異なっていました!上の方は2.4、下の方は3.0でした。3.0を2.4に変更すると、置換は適切に行われました。

(同様の問題を抱えている他の人にとって、これらの答えはあなたを助けるかもしれません:)

ELは解釈されず、生成されたHTML出力では単純なバニラとして表示されます

JSPの式言語が機能しない

于 2013-02-13T18:36:22.310 に答える