使用Spring启动渲染jsp页面时出错?

时间:2017-12-30 13:02:50

标签: java spring jsp spring-boot

我正在尝试从我的控制器渲染一个jsp页面,但我发现这个奇怪的事情正在发生。当我运行应用程序时,它会显示页面的实际html代码,而不是显示视图。这很奇怪我可能做错了什么。因此,基本上,当我运行我的应用程序时,将显示欢迎页面的整个html代码。

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  var window: UIWindow?

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

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";
        }
    }

的pom.xml

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

1 个答案:

答案 0 :(得分:1)

您需要做多件事:

  1. 添加application.properties这个(假设您的jsp位于src/webapp/WEB-INF/jsp

    spring.mvc.view.prefix = / WEB-INF / JSP / spring.mvc.view.suffix = .JSP

  2. 尝试将tomcat-embed-jasper<scope>compile</scope>

    放在一起
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>compile</scope>
    </dependency>
    
  3. 似乎有一个错误,至少在IntelliJ中,如果你用<scope>provided</scope>运行它,它将无法识别jsps。如果您使用maven(mvn spring-boot:run)运行,则无论scope

    如何都可以正常运行