我正在阅读 manning 出版社出版的 Spring in Action,第 4 版,第 5 章是关于 Spring Web App 的。我正在尝试使用 Maven 模板 Spring Boot Initilizr 项目在 Netbeans 中实现教科书示例。 (作者使用Gradle的示例。我想使用Maven项目管理工具)
但是,当我尝试在浏览器中查看内容时,我收到“Whitelabel Error Page”。以下是我的项目配置。我应该怎样做才能克服 Web 浏览器中的错误并查看 home.jsp 中存在的内容
WebConfig.java内容:
@Configuration
@EnableWebMvc
@ComponentScan("spitter.web")
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver
= new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/pages/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
home.jsp内容:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
<title>Spittr</title>
<link rel="stylesheet"
type="text/css"
href="<c:url value="/resources/style.css" />" >
</head>
<body>
<h1>Welcome to Spittr</h1>
<a href="<c:url value="/spittles" />">Spittles</a> |
<a href="<c:url value="/spitter/register" />">Register</a>
</body>
</html>
我能够正确测试测试包中存在的@Test脚本。
最佳答案
我现在意识到问题与我设置项目的方式有关。本书示例(Spring Web MVC)是一个 Web 应用程序,而不是 Spring Boot 应用程序。 Spring Boot 应用程序是独立的应用程序,需要存在 public static void main (String[] args) 。然而,显示 .jsp 页面的 Spring Web MVC 应用程序预计在服务器上运行。因此下面的 Netbeans 模板更相关
一旦选择了这个模板,其余的任务就很简单了。此外,书中示例在几个地方将 spittr
错误地编码为 spitter
。这需要纠正,并且已在图书论坛中提到 - https://forums.manning.com/posts/list/38046.page;jsessionid=8A9B66613EC5B4CAB91E1897C5631970 。一旦这些问题得到纠正,应用程序应该可以正常运行。以下是我的项目结构
具有正确包名称的 WebConfig 是
@Configuration
@EnableWebMvc
@ComponentScan("spittr.web")
public class WebConfig
extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver
= new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
带有更正包名称的 RootConfig:
@Configuration
@ComponentScan(basePackages = {"spittr"},
excludeFilters = {
@Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class)
})
public class RootConfig {
}
关于java - Netbeans Spring Boot Initializr 项目 : Unable to see jsp content in web browser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48493836/