如何在Spring Boot 5中提供(React-)html页面?

时间:2018-07-11 21:41:54

标签: spring reactjs spring-boot

我是Spring Boot和React的开发新手。我正在尝试开发具有多种形式的基于Web的向导应用程序。使用Spring Boot作为后端,使用React作为前端框架。我想提供一个登录表单,以及向导任务的多种表单。 不幸的是,我无法使Spring Boot自动将html文件提供给URI。例如, test.html 显示在http://localhost:8080/test 上。 那么如何将(React-)html文件链接到Spring Boot的URI?

我已经成功地将React与Spring Boot结合在一起,以便将带有React内容的 index.html 显示在http://localhost:8080上。因此,会自动找到 index.html 并将其映射到路径“ /”。 index.html 与其他'.html'文件一起位于名为 public 的React文件夹中。但是Spring Boot似乎只能自动识别 index.html 。我使用了错误的文件夹吗?

- public
     + index.html
     + login.html
     + publicNoSecurity.html
     + ...
 - src
    + main
     + java
         + com
             * ressources
                 - application.properties
             * webwizard.connection
                 - SelfServiceWebwizard.java
 - index.tsx
 - index.css
 - ...

例如,当我打开publicNoSecurity时,出现404错误: no controller -> 404

我还尝试用URI实现带有Requestmappings的Controller-Class。但这也没有帮助:

@Controller
public class DefaultController 
{
    @RequestMapping("/login")
    public String login() {
    return "login";
    }

    @RequestMapping("/publicNoSecurity")
    public String publicNoSecurity() {
    return "publicNoSecurity";
    }
}

使用控制器时,出现500错误和一个异常: with controller -> 500

  

2018-07-12 08:35:10.103错误13560 --- [io-8080-exec-10]   o.a.c.c.C。[。[。[/]。[dispatcherServlet]:的Servlet.service()   路径[]中的servlet [dispatcherServlet]抛出异常   [圆形视图路径[publicNoSecurity]:将分派回   当前处理程序URL [/ publicNoSecurity]。检查您的ViewResolver   设定! (提示:由于以下原因,这可能是未指定视图的结果:   默认视图名称生成。)]根本原因

     

javax.servlet.ServletException:循环视图路径[publicNoSecurity]:   将分派回当前的处理程序URL [/ publicNoSecurity]   再次。检查您的ViewResolver设置! (提示:这可能是由于   由于默认的视图名称生成,因此未指定的视图。)   org.springframework.web.servlet.view.InternalResourceView.prepareForRendering(InternalResourceView.java:209)   〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]在   org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:147)   〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]在   org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314)   〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]在   org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1325)   〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]在   org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1069)   〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]在   org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1008)   〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]在   org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)   〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]在   org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)   〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]在   org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)   〜[spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]

您可以在github上查看完整的代码:https://github.com/The-Taskmanager/SelfServiceWebwizard

1 个答案:

答案 0 :(得分:0)

由我自己解决。我错过了返回值中的“ .html”:

@Controller
public class DefaultController 
{
@RequestMapping("/login")
public String login() {
return "login.html";
}

@RequestMapping("/publicNoSecurity")
public String publicNoSecurity() {
return "publicNoSecurity.html";
}
}