spring - Spring Boot中的InternalViewResolver无法找到视图
问题描述
我不知道我已经尝试过多次,但从来没有真正理解 InternalViewResolver 或任何视图解析器是如何在后台工作的。我已经使用 WebMvcConfigurer 配置了视图分辨率。像这个。
@Configuration
public class WebViewConfigurer implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/register").setViewName("registration");
}
}
我已将我的 html 文件registration.html 放在以下位置:src/main/resources/templates。
每当我尝试访问页面 localhost:8080/register 时,我都会收到 whitelabel 错误页面
There was an unexpected error (type=Not Found, status=404).
我之前已经多次配置过这样的视图,一开始我总是遇到问题,但经过一些调整后我总是能掌握它,这一次我也知道我会得到它。所以问题不仅仅是我如何解决我当前的问题,而是我如何才能阻止这种重复性错误。有没有人在春天遇到过 ViewResolvers 的这些问题,或者只有我一个人。
解决方案
春季如何解析逻辑名称?
逻辑名称由 DispatcherServelet 解析。并得到各种视图解析器的帮助。其中之一是内部视图解析器,它是基于 URL 的视图解析器。
跟随堆栈:
getResource:154, PathResourceResolver (org.springframework.web.servlet.resource)
resolveResourceInternal:137, PathResourceResolver (org.springframework.web.servlet.resource)
resolveResource:46, AbstractResourceResolver (org.springframework.web.servlet.resource)
resolveResource:75, DefaultResourceResolverChain (org.springframework.web.servlet.resource)
getResource:560, ResourceHttpRequestHandler (org.springframework.web.servlet.resource)
handleRequest:485, ResourceHttpRequestHandler (org.springframework.web.servlet.resource)
handle:53, HttpRequestHandlerAdapter (org.springframework.web.servlet.mvc)
doDispatch:1040, DispatcherServlet (org.springframework.web.servlet)
doService:943, DispatcherServlet (org.springframework.web.servlet)
processRequest:1006, FrameworkServlet (org.springframework.web.servlet)
doGet:898, FrameworkServlet (org.springframework.web.servlet)
service:634, HttpServlet (javax.servlet.http)
service:883, FrameworkServlet (org.springframework.web.servlet)
service:741, HttpServlet (javax.servlet.http)
internalDoFilter:231, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
doFilter:53, WsFilter (org.apache.tomcat.websocket.server)
internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
doFilter:113, OncePerRequestFilter (org.springframework.web.filter)
internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
doFilter:113, OncePerRequestFilter (org.springframework.web.filter)
internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
doFilter:113, OncePerRequestFilter (org.springframework.web.filter)
internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
invoke:712, ApplicationDispatcher (org.apache.catalina.core)
processRequest:459, ApplicationDispatcher (org.apache.catalina.core)
doForward:384, ApplicationDispatcher (org.apache.catalina.core)
forward:312, ApplicationDispatcher (org.apache.catalina.core)
renderMergedOutputModel:171, InternalResourceView (org.springframework.web.servlet.view)
render:316, AbstractView (org.springframework.web.servlet.view)
render:1373, DispatcherServlet (org.springframework.web.servlet)
processDispatchResult:1118, DispatcherServlet (org.springframework.web.servlet)
doDispatch:1057, DispatcherServlet (org.springframework.web.servlet)
doService:943, DispatcherServlet (org.springframework.web.servlet)
processRequest:1006, FrameworkServlet (org.springframework.web.servlet)
doGet:898, FrameworkServlet (org.springframework.web.servlet)
service:634, HttpServlet (javax.servlet.http)
service:883, FrameworkServlet (org.springframework.web.servlet)
service:741, HttpServlet (javax.servlet.http)
internalDoFilter:231, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
doFilter:53, WsFilter (org.apache.tomcat.websocket.server)
internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
doFilterInternal:100, RequestContextFilter (org.springframework.web.filter)
doFilter:119, OncePerRequestFilter (org.springframework.web.filter)
internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
doFilterInternal:93, FormContentFilter (org.springframework.web.filter)
doFilter:119, OncePerRequestFilter (org.springframework.web.filter)
internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
doFilterInternal:201, CharacterEncodingFilter (org.springframework.web.filter)
doFilter:119, OncePerRequestFilter (org.springframework.web.filter)
internalDoFilter:193, ApplicationFilterChain (org.apache.catalina.core)
doFilter:166, ApplicationFilterChain (org.apache.catalina.core)
invoke:202, StandardWrapperValve (org.apache.catalina.core)
invoke:96, StandardContextValve (org.apache.catalina.core)
invoke:541, AuthenticatorBase (org.apache.catalina.authenticator)
invoke:139, StandardHostValve (org.apache.catalina.core)
invoke:92, ErrorReportValve (org.apache.catalina.valves)
invoke:74, StandardEngineValve (org.apache.catalina.core)
service:343, CoyoteAdapter (org.apache.catalina.connector)
service:373, Http11Processor (org.apache.coyote.http11)
process:65, AbstractProcessorLight (org.apache.coyote)
process:868, AbstractProtocol$ConnectionHandler (org.apache.coyote)
doRun:1590, NioEndpoint$SocketProcessor (org.apache.tomcat.util.net)
run:49, SocketProcessorBase (org.apache.tomcat.util.net)
runWorker:1149, ThreadPoolExecutor (java.util.concurrent)
run:624, ThreadPoolExecutor$Worker (java.util.concurrent)
run:61, TaskThread$WrappingRunnable (org.apache.tomcat.util.threads)
run:748, Thread (java.lang)
PathResourceResolver 有一个由 ResourceHttpRequestHandler 传递的资源变量,它试图解析资源。资源可以是不同的类型,例如:ClasspathResource 或 ServletContextResource。
您可以调试 PathResourceResolver.getResource() 方法来查找您的资源是否未解析。
推荐阅读
- html - 如何使用 PowerShell 解析网站的 HTML
- c# - 为什么我在部署时无法从 IIS 服务器上的 Web api 获取 pdf 文件输出?
- mysql - mysqldump 最大忽略表使用情况?
- react-native - 如何使用 react-native 在一台移动设备上启用多个用户使用 OTP 登录
- python - VSCode 折叠文档字符串 Python MacOS
- python-3.x - 使用请求库在 python 中扩展短 url
- scala - 多项目设置 - 未检测到主类
- java - 如何创建接受参数并验证页面对象的页面标题的通用黄瓜步骤
- php - 仅当数组的某些元素具有相同值时才增加变量计数 - PHP
- python - NFQueue/Scapy Man in the Middle