当我在tomcat 8中渲染这个应用程序时,我一直得到一个空白页面.我看到的唯一错误是:
o.s.boot.context.web.ErrorPageFilter: Cannot forward to error page for
request [/] as the response has already been committed.
Run Code Online (Sandbox Code Playgroud)
因此我的问题是我无法呈现index.html页面.
我拿了一个静态页面并在其中添加了一个spring-boot模块.自从我做了更改后,我再也无法呈现页面了.我有index.html文件templates
我在我的控制器中添加了注释,看看它们是否被击中而且它们不是:
@Controller
public class ApplicationController {
@Autowired
ContactService contactService;
@RequestMapping(value="/", method= RequestMethod.GET)
public String contactForm() throws IOException {
System.out.println("Inside GET in Application Controller");
//model.addAttribute("contact", new Contact());
return "index";
}
@RequestMapping(value="/contact", method= RequestMethod.POST)
public String contactSubmit() throws IOException {
System.out.println("Inside POST in Application Controller");
return "index";
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Thymeleaf,但决定反对它,这就是为什么方法中的参数是空白的.
我已将项目上传到GIT,以便有人在需要时更容易地下载和下载.
----------------更新1 ----------------------
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
private static final Logger LOGGER = Logger.getLogger(WebConfig.class);
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("index");
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
registry.addResourceHandler("/css/**").addResourceLocations("/resources/css/");
registry.addResourceHandler("/images/**").addResourceLocations("/resources/images/");
registry.addResourceHandler("/image/**").addResourceLocations("/resources/image/");
registry.addResourceHandler("/javascripts/**").addResourceLocations("/resources/javascripts/");
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
Run Code Online (Sandbox Code Playgroud)
没有什么可以表明我能想到的.如果您也选择其他文件,您可以在GIT上查看它.
我正在玩你的应用程序。(git 存储库帮助解决了您的配置问题)。
问题在于您的配置属性和注释的混合。以下步骤将有助于恢复defaultSpring Boot 行为。
index.htm到该webapp目录。webapp/resources到webappspring.mvc.static-path-pattern=/resources/*/ @RequestMapping(value="/", method= RequestMethod.GET)删除到和方法本身的映射。Boot 将处理index.html到ROOT. /映射混乱 Boot Spring MVC 自动配置。WebConfig完全删除你的。下一步是根据需要映射静态资源:
public class AppMvcConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// Including all static resources.
registry.addResourceHandler("/assets/**",
"/css/**",
"/img/**",
"/js/**"
).addResourceLocations("/assets/",
"/css/",
"/img/",
"/js/"
).resourceChain(true)
.addResolver(new PathResourceResolver());
super.addResourceHandlers(registry);
}
}
Run Code Online (Sandbox Code Playgroud)
请参阅我的 git存储库。
查看有关自定义Spring MVC 配置的更多信息。
| 归档时间: |
|
| 查看次数: |
27909 次 |
| 最近记录: |