当前位置: 首页 > 知识库问答 >
问题:

Spring简单地渲染一个html页面

桂学
2023-03-14

问题是:

使用Spring 4,我在访问网页时收到了这个消息

Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.

Fri Aug 15 16:41:29 BST 2014
There was an unexpected error (type=Not Found, status=404).

我所拥有的:

我有这个主类:

// src/main/java/abc/Main.java
package abc;

import abc.web.WebAppConfig;
import org.springframework.boot.SpringApplication;

public class Main {
    public static void main(String[] args) {
        SpringApplication.run(WebAppConfig.class);

    }
}

然后我有这个WebAppConfig.class(目前只有一些配置注释):

// src/main/java/abc/web/WebAppConfig.java
package abc.web;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;

@ComponentScan
@EnableAutoConfiguration
public class WebAppConfig {

}

而这个控制器HomeController.java:

// src/main/java/abc/web/HomeController.java
package abc.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import static org.springframework.web.bind.annotation.RequestMethod.GET;

@Controller
@RequestMapping("/")
public class HomeController {

    @RequestMapping(method = GET)
    public String home() {
        System.out.println("HELLO !!");
        return "home";
    }
}

你好!!显示在日志中。

最后,我在src/main/java/abc/webapp/home.html上有一个html文件,其中只有一些html标签,包括一个p标签,带有Hello, world!

问题是:

我知道我错过了渲染视图的方式,但我搜索了几个关于stackoverflow的问题,还没有找到解决方案。

有人能解释一下我如何让Spring渲染一个网页吗?我错过了什么?

提前感谢:)

共有3个答案

甄华清
2023-03-14

您可能没有配置模板引擎和视图解析器。请参阅此处的thymeleaf示例http://www.thymeleaf.org/doc/thymeleafspring.html因为thymeleaf模板是有效的超文本标记语言代码,反之,您可以使用它。

黎浩然
2023-03-14

"如何让Spring Boot渲染网页?"问题的最简单答案是:将您的home.html文件放在src/main/资源/静态/文件夹中。该页面将在/home.htmlURL下可用。

更多细节留档。

邴星洲
2023-03-14

Spring Boot将自动使用并配置Thymeleaf作为视图渲染引擎,只要它位于类路径上。要将其放在类路径上,请使用

compile("org.springframework.boot:spring-boot-starter-thymeleaf")

在gradle构建文件中。

如果您使用的是maven,请添加依赖项:

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

在您的情况下,为了显示home.html视图(根据您使用的控制器),您需要将其放在/资源/模板下。

有关完整示例,请参阅本指南。

 类似资料:
  • 我正在使用spring boot尝试建立自己的迷你网站。 我有控制器 还有一个html文件resources/templates/index,我正试图呈现它,但我只呈现了文本“index”。如何返回html文件而不是文本?

  • web-frame 模块可自定义渲染当前网页 进程: 渲染进程​ 例如放大当前页至 200%. 1 const {webFrame} = require('electron') 2 webFrame.setZoomFactor(2) Copied! 方法 webFrame.setZoomFactor(factor) 用途:设置页面的缩放系数 factor Number - 缩放系数 注意:缩放系数

  • 问题内容: 我想使用Express 3 呈现原始页面,如下所示: 这是我配置服务器以呈现原始HTML页面的方式(此过时的问题启发了这一点): 不幸的是,使用此配置,页面将挂起并且永远无法正确呈现。我做错了什么?如何在没有精美的渲染引擎(如Jade和EJS)的情况下使用Express3渲染原始HTLM? 问题答案: 如果您实际上不需要将数据注入模板,则express中最简单的解决方案是使用静态文件服

  • 在React中你可以封装任意内容的用户界面Component,只要你有需要的话!然后,你可以在渲染这些组件到dom中的时候,根据需要,选择其中的一部分进行渲染,这个取决你的组件state。 在react中,使用条件渲染跟你在javascript中使用条件语句是一样的,你可以使用操作符if或者条件语句等语法有条件地根据当前的state渲染Elements,最后再更新dom以显示符合当前element

  • 问题内容: 我正在尝试使用angular js将css动态添加到我的html头中。这是示例代码 此代码可以正常工作,但是当浏览器加载页面时,它尝试使用原始的angularjs模板获取CSS资源,并且在Firebug的网络标签中看到“ 404 not found error”。 页面完全加载后,它将替换模板值并加载适当的CSS。 有没有一种方法可以避免404错误并在angularjs处理后使其加载C

  • 渲染过程 1.最初的最初,我们要知道 ./build/webpack.base.conf.js 这个文件,是webpack打包的主要配置文件 其中 module.exports = { entry : { app: './src/main.js' // 这里就定义了vue的入口文件 } } 知道了这个打包文件,我们就可以知道接下来的事儿了。 2.找到index.html ,可