可以确定的是,DispatcherServlet和CharacterEncodingFilter配置的子项都是正确的,去掉任何一个,红色报错都会消失。查看具体的报错信息如下:
“(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)”.
我们发现不同的标签是优先级的,其中,filter和filter-mapping的优先级高于servlet和servlet-mapping。我们调整一下控制器和过滤器的位置,报错消失。