有一个令人困惑的问题,可能完全是由于缺乏使用Spring和/或Intellj的经验,但在整个互联网上搜索了一大堆之后,在如何解决上没有运气,所以这里就是这样。
简而言之,我有一个示例应用程序,我正在开发该应用程序以获得一些Spring/Hibernate/Maven的经验。它工作得很好(如预期的那样加载页面,等等),但是在代码中,我有大量的标志表明IDE不能解析MVC视图,我不明白为什么会出现这种情况。
设置是web.xmlless,使用完全的Java设置,使用如下的侦听器配置。
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
registry.viewResolver(viewResolver);
}
下面是一个代码示例,其中标记了它无法解析MVC视图
@RequestMapping(value = { "/", "/list" }, method = RequestMethod.GET)
public String listUsers(ModelMap model) {
List<User> users = userService.findAllUsers();
model.addAttribute("users", users);
model.addAttribute("loggedinuser", getPrincipal());
return "userslist";
}
其中userslist是未找到的违规视图。
虽然我相当确定它不是一个缺失的Spring插件,但pom.xml有以下spring组件,使用版本4.2.5
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${springframework.version}</version>
</dependency>
也使用已注册的最新版本的IntellJ 2016.2.4。
发布于 2016-10-13 22:08:51
可能的解决方案(因为屏幕截图,我不得不写一个答案):你没有为你的模块配置facet。打开Project Structure对话框,转到左侧的Modules条目,并将Spring facet添加到其中。如果你这样做了,你可以添加你的弹簧配置。
Idea应该已经通知您有未注册的Spring配置(如下所示)
发布于 2020-08-06 01:03:28
在这上面花了大约4个小时后,我发现这是一个Intellij bug,报告为here。
解决方法是按如下方式配置视图解析器:
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/WEB-INF/pages/", ".jsp");
}
发布于 2016-11-09 17:07:22
我认为这个问题的发生是因为Itellij不能正确识别ViewResolver Bean。尝试将viewResolver的配置更改为如下所示:
@Configuration
@EnableWebMvc
@ComponentScan("com.app")
public class WebConfig extends WebMvcConfigurerAdapter{
@Bean
public InternalResourceViewResolver resolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
public void configureDefaultServerletHandling(DefaultServletHandlerConfigurer configurer){
configurer.enable();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry
.addResourceHandler("/resources/**")
.addResourceLocations("/resources/");
}
}
https://stackoverflow.com/questions/40022839
复制相似问题