我已经搜索了很多,但我没有找到我的问题的答案,所以我把我的问题贴在这里。请看一看,并提出解决方案,我错了。
我已经使用spring工具套件(STS)创建了spring boot web mvc项目,该项目支持thymeleaf。当我运行它时,给我“白标签错误页面”页面。这意味着找不到映射。
努力:
网络配置。JAVA
package com.springthymeleaf.config;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.thymeleaf.spring4.SpringTemplateEngine;
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;
@Configuration
@ComponentScan("com.springthymeleaf")
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
ServletRegistrationBean servletRegistration(){
ServletRegistrationBean registrationBean = new ServletRegistrationBean();
registrationBean.addUrlMappings("/console/*");
return registrationBean;
}
//start Thymeleaf specific configuration
@Bean(name ="templateResolver")
public ServletContextTemplateResolver getTemplateResolver() {
ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
// templateResolver.setPrefix("/templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode("XHTML");
return templateResolver;
}
@Bean(name ="templateEngine")
public SpringTemplateEngine getTemplateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(getTemplateResolver());
return templateEngine;
}
@Bean(name="viewResolver")
public ThymeleafViewResolver getViewResolver(){
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
viewResolver.setTemplateEngine(getTemplateEngine());
return viewResolver;
}
//end Thymeleaf specific configuration
@Bean(name ="messageSource")
public MessageSource getMessageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("/WEB-INF/i18/thymeleafResource");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
}
安全Configuration.java
package com.springthymeleaf.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity.authorizeRequests().antMatchers("/").permitAll();
}
}
ServletInitializer。JAVA
package com.springthymeleaf;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringThymeLeafApplication.class);
}
}
SpringThymeLeafApplication.java
package com.springthymeleaf;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringThymeLeafApplication {
public static void main(String[] args) {
SpringApplication.run(SpringThymeLeafApplication.class, args);
}
}
IndexController.java
package com.springthymeleaf.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
@RequestMapping("/")
public String index(){
return "index";
}
}
我已经创建了索引。html
文件,位于resources/templates文件夹中。但我还是犯了那个错误。我在网上搜索了很多,但没有找到线索。请有人帮帮我。
当您添加thymeleaf依赖项时,Spring boot会执行所有自动配置。那么你应该做以下事情。
>
如果您使用Maven,请确保您的pom.xml有以下依赖项,否则如果您使用gradle,请检查Spring网站上的等效项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
第三,确保扫描控制器的位置,在SpringEleaf应用程序中添加以下内容。爪哇:
@ComponentScan(base Packages="your.path.to.controllers")
最后,你必须添加你的。html文件到资源/模板
Spring Boot已经为您配置了Thymeleaf,所以无需手动配置。删除所有与Thymeleaf相关的配置,同时删除@EnableWebMvc
,因为这会干扰Spring Boot自动配置。@ComponentScan
也是冗余的。
Spring Boot还为您注册了一个MessageSource
,所以不需要配置它。不知道您要做什么servlet注册,但这是你唯一需要的。
我还建议删除您的控制器,并使用一个视图控制器,您可以在您的WebConfig
类中配置该控制器。
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
ServletRegistrationBean servletRegistration(){
ServletRegistrationBean registrationBean = new ServletRegistrationBean();
registrationBean.addUrlMappings("/console/*");
return registrationBean;
}
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index");
}
}
要让自动配置的消息源拾取自定义包,请将以下内容添加到src/main/resources/application。属性
。
spring.messages.basename=/WEB-INF/i18/thymeleafResource
我还建议简单地让springbootservletializer
扩展springbootservletializer
。
@SpringBootApplication
public class SpringThymeLeafApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SpringThymeLeafApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringThymeLeafApplication.class);
}
}
还要确保模板在src/main/resources/templates
中,而不是在src/main/resources/resources/templates
中,否则这些模板将找不到。
实际上,Spring Boot配置了Thymeleaf。它应该与以下设置一起工作:
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter
{
@Override
protected void configure(HttpSecurity http) throws Exception
{
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/login").defaultSuccessUrl("/").permitAll() // http://docs.spring.io/spring-security/site/docs/4.0.3.RELEASE/reference/htmlsingle/#jc-form
.and()
.logout().permitAll(); // http://docs.spring.io/spring-security/site/docs/4.0.3.RELEASE/reference/htmlsingle/#jc-logout
}
@Override
public void configure(WebSecurity web) throws Exception
{
web
.ignoring()
.antMatchers("/resources/**"/*, ... */);
}
}
@Controller
public class LoginController
{
@RequestMapping("/login")
static String login(Model model)
{
return "login";
}
}
我有一个Java/SpringBoot服务,它使用Thymeleaf将来自其他位置的HTML和CSS片段组装成PDF文档。我注意到,我内联到文档中的CSS使用Flexbox属性:。然而,Thymeleaf似乎不遵守这些CSS规则。Thymeleaf是否支持Flexbox和CSS3功能?
我正在尝试让Spring 4.1.9和Thymeleaf 2.1.5渲染XHTML Basic 1.1页面,它们具有以下序言: 简单地在模板中使用它是行不通的,因为百里香叶不能识别doctype。 org . thyme leaf . exceptions . templateprocessingexception:使用public id "-//W3C//DTD XHTML Basic 1.1/
我试图将视图与结合使用。我有一个实体,拥有一组电子邮件,我想在Thymeleaf模板中访问这些电子邮件: 在用户中。斯卡拉 在一些模板中。html 问题是Spring表达式求值器(Thymeleaf将表达式求值任务委托给它)只理解Java集合类型,因此试图获取Scala列表的第一个元素()/>)失败,出现异常。 我试图深入SpEL源代码,找到一个可以添加Java到Scala转换的地方。似乎如果我可
问题内容: 我们有几个数据模式,我们研究了向Liquibase的迁移。(其中一种数据模式已经迁移到Liquibase)。 对我们来说重要的问题是Liquibase是否支持空运行: 我们需要在所有架构上运行数据库更改而无需提交,以确保我们没有问题。 如果成功,则所有数据库更改都将再次通过提交运行。 答案后添加 我阅读了有关updateSQL的文档,但它不能满足“快速运行”的要求。它只是生成SQL(在
出于某种原因,每次我尝试在我的管道(ApacheBeamPython)中创建schema ware PCollection时,使用并尝试在数据流上运行它,我得到一个如下所示的致命错误,该错误导致工作进程在VM上死亡。奇怪的是,当我使用Directrunner在本地运行时,我没有遇到这个错误。 我想确保这不是我在自定义代码中犯的愚蠢错误。我尝试了谷歌的例子,比如下面的片段简化自:https://gi