spring mvc配置文件出现红叉

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring mvc配置文件出现红叉相关的知识,希望对你有一定的参考价值。

我的spring mvc配置文件,出现红叉,是怎么回事。
我已经在web.xml中配置spring mvc的servlet
classpath:下已有:javaEE5 ,JDK_1.6 ,SPRING的jar包

红叉处提示

你的头文件 就是<beans> 节点中的内容不对
具体内容指向是版本之间不兼容 我猜你的3.0 应该改成2.5
你在网上找找 有没有2.5标识的代码 (注并不是改你自身文件的数字就可以了 那是错误的 2.5的表头代码不一样)
这个问题我也遇到过 我是这样解决的
除了这个方式,另外就是看有哪些jar文件不兼容,找出不兼容的jar版本并替换
祝你成功追问

JAR是没问题的,别人导入没有红叉提示。我的myeclipse6导入有

追答

你加spring框架用MyEclipse自动加入的吗?
如果是的话 就是因为你手动加的时候版本选错了, 还有一个原因是因为 DTD 的原因
这方面你也百度一下 , 我也是一年前得时候遇到过的, 现在的公司用eclipse

参考技术A 鼠标放到红叉的地方,看看显示什么错误,一般都是有些xmlns没有引入造成的追问

可是在别人那里没有错误,跟myeclipse版本还有关系吗?

追答

还有就是xsd文件缺失,myeclipse版本差距大吗

参考技术B 你点windows下面preferences点进去 在上面输入xml找到catalog在里面添加一些东西就可以了 参考技术C 出现红叉那指定是出问题了,你这样描述不行,把问题贴出来给你看看。这样无法判断具体是什么问题。追问

图片你帮看看,是怎么回事

追答

756596042
spring配置文件给我发过来...我试试

本回答被提问者采纳

使用 @EnableWebMvc 和 WebMvcConfigurerAdapter 进行静态资源定位的 Spring MVC 配置会导致“转发:”和“重定向:”出现问题

【中文标题】使用 @EnableWebMvc 和 WebMvcConfigurerAdapter 进行静态资源定位的 Spring MVC 配置会导致“转发:”和“重定向:”出现问题【英文标题】:Spring MVC configuration with @EnableWebMvc and WebMvcConfigurerAdapter for static resources location causes problems with "forward:" and "redirect:" 【发布时间】:2016-05-01 02:08:38 【问题描述】:

我有一个用于 web 的 Spring Boot hello world,但对配置有些困惑:

春季版:1.2.6.RELEASE

我的项目结构:

我需要提供一些静态内容,所以我决定在一些自定义 WebConfig 类中重新定义此类内容的源目录(用于学习目的):

@EnableWebMvc 的 Javadoc 说:

将此注解添加到@Configuration 类会导入 Spring 来自 WebMvcConfigurationSupport 的 MVC 配置

要自定义导入的配置,实现接口 WebMvcConfigurer 或更可能扩展空方法基类 WebMvcConfigurerAdapter 并覆盖单个方法,例如:

于是下一个配置类诞生了:

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter 

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) 
        registry.addResourceHandler("/r/**").addResourceLocations("classpath:/static/r/");
        registry.addResourceHandler("/favicon.ico").addResourceLocations("classpath:/static/r/favicon.ico");
    
    @Override
    public void addViewControllers(ViewControllerRegistry registry) 
        registry.addViewController("/").setViewName("forward:/r/diploma/index.html");
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
        super.addViewControllers(registry);
    

如果运行应用程序并尝试访问http://localhost:8080/ 我得到下一个例外:

javax.servlet.ServletException: Could not resolve view with name 'forward:/r/diploma/index.html' in servlet with name 'dispatcherServlet'

但是如果我从我的 WebConfig 中删除 @EnableWebMvc,我会在浏览器中获得我的 index.html。 那么这种行为的原因是什么?

实际上,我有一个生产项目,我以该项目为例进行研究,它在WebConfig 上同时具有@EnableWebMvcWebMvcConfigurerAdapter

【问题讨论】:

【参考方案1】:

您应该添加一个ViewResolver 来解析您在WebConfig 中的视图,如下所示:

@Bean
public InternalResourceViewResolver defaultViewResolver() 
    return new InternalResourceViewResolver();

当您添加@EnableWebMvc 时,您将关闭所有 Spring Boot 的 Web 自动配置,它会自动为您配置此类解析器。去掉注解,自动配置会再次开启,自动配置的ViewResolver解决了问题。

【讨论】:

以上是关于spring mvc配置文件出现红叉的主要内容,如果未能解决你的问题,请参考以下文章

Spring MVC系列Spring MVC中请求转发中出现异常如何处理

spring mvc配置文件不能识别是啥原因?

spring mvc 项目 相关配置文件小结

spring mvc 如何配置最简洁的

spring mvc中如何读取数据库

xml Spring MVC 4 XML配置文件