Spring MVC 不适用于 java 配置(源服务器未找到目标资源的当前表示..)
Spring MVC does not work with java configurations (the source server did not find the current representation for the target resource..)
我尝试使用一个简单的控制器通过 Eclipse ide 在 tomcat 中创建一个简单的 Spring MVC 和 运行:
@Controller
public class HomeController {
@RequestMapping("/home")
public String helloWorld(Model model) {
model.addAttribute("message", "home university!");
return "home";
}
}
我的其他配置:
网络初始化程序:
public class WebAppInitializer implements WebApplicationInitializer{
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.register(MvcConfig.class, ServiceConfig.class, AspectConfig.class, DaoConfig.class, DataSourceConfig.class);
context.setServletContext(servletContext);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispather", new DispatcherServlet(context));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
MvcSpringJavaConfig:
public class MvcConfig {
@Configuration
@ComponentScan(basePackages = "img.imaginary.controller")
@EnableWebMvc
public class MvcConfiguration {
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
}
结构:
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
</web-app>
我的pom.xml:
pom.xml
当 tomcat 启动并且我尝试在浏览器中打开该应用程序时,我得到
404 状态和描述:
源服务器没有找到目标资源的当前表示或不想公开它的存在。
我尝试更改控制器和 web.xml 以及其他配置,但我总是得到这个结果
为了让我的简单家庭控制器正确启动,我不知道我缺少什么
您应该将 @Configuration
添加到 MvcConfig
class。也可以参考 this:
Any nested configuration classes must be declared as static.
MvcConfiguration
class 必须是静态的。
我尝试使用一个简单的控制器通过 Eclipse ide 在 tomcat 中创建一个简单的 Spring MVC 和 运行:
@Controller
public class HomeController {
@RequestMapping("/home")
public String helloWorld(Model model) {
model.addAttribute("message", "home university!");
return "home";
}
}
我的其他配置:
网络初始化程序:
public class WebAppInitializer implements WebApplicationInitializer{
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.register(MvcConfig.class, ServiceConfig.class, AspectConfig.class, DaoConfig.class, DataSourceConfig.class);
context.setServletContext(servletContext);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispather", new DispatcherServlet(context));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
MvcSpringJavaConfig:
public class MvcConfig {
@Configuration
@ComponentScan(basePackages = "img.imaginary.controller")
@EnableWebMvc
public class MvcConfiguration {
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
}
结构:
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
</web-app>
我的pom.xml: pom.xml
当 tomcat 启动并且我尝试在浏览器中打开该应用程序时,我得到 404 状态和描述:
源服务器没有找到目标资源的当前表示或不想公开它的存在。
我尝试更改控制器和 web.xml 以及其他配置,但我总是得到这个结果
为了让我的简单家庭控制器正确启动,我不知道我缺少什么
您应该将 @Configuration
添加到 MvcConfig
class。也可以参考 this:
Any nested configuration classes must be declared as static.
MvcConfiguration
class 必须是静态的。