2017-12-30 60 views
0

コントローラからjspページをレンダリングしようとしていますが、この奇妙なことが起こっています。アプリケーションを実行すると、ビューを表示する代わりにページの実際のHTMLコードが表示されます。これは私が間違っていることができるかどうか非常に奇妙です。したがって、基本的に、私がアプリケーションを実行するとウェルカムページのHTMLコード全体が表示されます。Springブートを使用してJSPページをレンダリングする際にエラーが発生しましたか?

package com.example.DemoService; 

    import org.springframework.stereotype.Controller; 
    import org.springframework.web.bind.annotation.RequestMapping; 

    import java.util.Map; 

    @Controller 
    public class HelloController { 



     @RequestMapping("/test") 
     public String welcome(Map<String, Object> model) { 
      model.put("message", "Raaj"); 
      return "welcome"; 
     } 
    } 

JSPの

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
    <html> 
    <body> 
    Hello ${message} 
    </body> 
    </html> 

あなたはあなたがする必要がある複数のもの持っているのpom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.example</groupId> 
    <artifactId>DemoService</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>DemoService</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.9.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

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

     <dependency> 
      <groupId>com.h2database</groupId> 
      <artifactId>h2</artifactId> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-devtools</artifactId> 
      <optional>true</optional> 
     </dependency> 
     <!-- Need this to compile JSP --> 
     <dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-jasper</artifactId> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

答えて

1

  1. はあなたを推定(あなたapplication.propertiesでこれを追加あなたのjspをに)

    spring.mvc.view.prefix =/WEB-INF/JSP/ spring.mvc.view.suffix = .jspという

  2. <scope>compile</scope>

    <dependency> 
        <groupId>org.apache.tomcat.embed</groupId> 
        <artifactId>tomcat-embed-jasper</artifactId> 
        <scope>compile</scope> 
    </dependency> 
    
tomcat-embed-jasperを入れてみてください

少なくともIntelliJでは、<scope>provided</scope>で実行すると、jspを認識できないバグがあるようです。あなたがmaven(mvn spring-boot:run)で走っても、scope

関連する問題