【发布时间】:2020-12-04 12:26:09
【问题描述】:
我的问题是我的页面中有一个 jquery 数据表,它属于使用 springboot 2.3.2.RELEASE 和 Java 11 和 Thymleaf 的 Web 应用程序。
为了具有与以下相同的行为:Jquery datatables Row details
我的 png 文件如下:
在我的配置类中:
@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurationSupport {
@Bean
static PropertySourcesPlaceholderConfigurer propertyPlaceHolderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@Override
public RequestMappingHandlerMapping createRequestMappingHandlerMapping() {
RequestMappingHandlerMapping requestMappingHandlerMapping = super.createRequestMappingHandlerMapping();
requestMappingHandlerMapping.setUseTrailingSlashMatch(false);
return requestMappingHandlerMapping;
}
@Bean(name = "messageSource")
public MessageSource configureMessageSource() {
// default message source
ReloadableResourceBundleMessageSource defaultMessageSource = new ReloadableResourceBundleMessageSource();
defaultMessageSource.setBasename("classpath:i18n/messages");
defaultMessageSource.setDefaultEncoding("UTF-8");
defaultMessageSource.setCacheSeconds(5000);
return defaultMessageSource;
}
@Bean
public LocaleResolver localeResolver() {
CookieLocaleResolver resolver = new CookieLocaleResolver();
resolver.setDefaultLocale(new Locale("fr"));
resolver.setCookieName("localeCookie");
resolver.setCookieMaxAge(5000);
return resolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
interceptor.setParamName("lang");
registry.addInterceptor(interceptor);
}
@Bean
public ClassLoaderTemplateResolver templateResolver() {
ClassLoaderTemplateResolver result = new ClassLoaderTemplateResolver();
result.setPrefix("/templates/");
result.setSuffix(".html");
result.setTemplateMode("HTML");
result.setOrder(1);
result.setCacheable(true);
return result;
}
@Bean
public SpringTemplateEngine templateEngine() {
SpringTemplateEngine templateEngine = new SpringTemplateEngine();
templateEngine.setTemplateResolver(templateResolver());
// templateEngine.addDialect(new SpringSecurityDialect());
templateEngine.addDialect(new nz.net.ultraq.thymeleaf.LayoutDialect());
return templateEngine;
}
@Bean
public ThymeleafViewResolver viewResolver() {
ThymeleafViewResolver thymeleafViewResolver = new ThymeleafViewResolver();
thymeleafViewResolver.setTemplateEngine(templateEngine());
thymeleafViewResolver.setCharacterEncoding("UTF-8");
return thymeleafViewResolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
protected void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
}
@Bean
public MultipartResolver multipartResolver() {
return new StandardServletMultipartResolver();
}
}
在开发者控制台中,我在链接 http://localhost:8080/tsp/details_open.png 上有 404
我在徒劳地挣扎。除非我记错了,这与静态资源处理有关。
tsp 来自以下 application.yml 文件:
server:
port: 8080
servlet:
context-path: /tsp
我做了一个单独的测试项目,隔离了我的 MvcConfig 问题
有什么帮助吗?
【问题讨论】:
-
知道
tsp在localhost:8080/tsp/details_open.png URL 中的来源吗? -
@WimDeblauwe 谢谢你的提问。我在我的问题中添加了解释:) 请随时检查。
标签: css spring-boot datatables thymeleaf