63

組み込みの Tomcat (デフォルト) を使用して、Spring Boot Web アプリケーションを稼働させています。コントローラーで指定したビューのレンダリングの一部として JSP ファイルを提供すると、JSP はそのようにレンダリングされず、代わりにコンテンツを出力します。例えば:

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html lang="en">
    <head></head>
    <body>Test</body>
</html>

ビューがブラウザーでレンダリングされると、期待されるコンテンツではなく、上記のコンテンツが表示されます。

Test
4

20 に答える 20

108

pom.xmlTomcat JSP 依存関係を次のように指定していることを確認してください。

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

組み込みの Tomcat は、JSP レンダリングをオプションとして扱っているようです。

以下で説明するように、この JAR も必要になる場合があります。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <scope>provided</scope>
</dependency>

(この JAR はサーブレット コンテナーに含める必要があるため、provided を追加しました。

于 2013-12-16T01:13:01.723 に答える
24

これが機能するには、1 つではなく 2 つの依存関係 (jasper と jstl) が必要ですpom.xml

   <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
</dependencies>
于 2014-03-21T07:35:31.760 に答える
15

私にとっては、ダンが言ったのと同じように働きました。指定されたスコープを削除しています。

<dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-jasper</artifactId>
</dependency>

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
</dependency>

みんなありがとう!

于 2016-11-08T11:43:56.980 に答える
10

gradle(Mavenに追いついています)を使用することをお勧めします。この依存関係を build.gradle ファイルで使用します。

//JSP に必要な依存関係

providedRuntime 'org.apache.tomcat.embed:tomcat-embed-jasper'
于 2014-10-29T08:48:06.260 に答える
7
  1. spring-boot-starter-tomcattomcat-embed-jasperおよびjstl依存関係が pom.xml にあることを確認してください。
  2. 梱包タイプが であることを確認してくださいwar
  3. 複数のモジュール (IntelliJ) がある場合は、[実行] -> [構成の編集] -> [構成] に移動し、[$MODULE_WORKING_DIR$作業ディレクトリ] を選択または配置します。

それでおしまい。

于 2019-11-11T13:21:13.230 に答える
1

Spring Boot バージョン 1.5.10.RELEASE を使用している場合、以下の maven 依存関係を追加することができました。

注:これら2つの を提供しない場合にのみ機能しました。<scope>

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <!--<scope>provided</scope>-->
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <!--<scope>provided</scope>-->
</dependency>

そして、以下の設定をapplication.propertiesファイルに提供します

spring.mvc.view.prefix: /WEB-INF/jsp/ spring.mvc.view.suffix: .jsp

于 2019-07-29T10:48:43.973 に答える