我想要org.springframework.web.servlet.view.InternalResourceViewResolver来解析jsp和html页面.
那可能吗?
这可能是一个愚蠢的问题,但我在谷歌搜索时没有找到答案.
目前,我将来自someFileName.html的请求映射到servlet,然后使用web.xml中的servlet映射将其转发到someFileName.jsp.我想避免这种情况,只需配置我的应用程序服务器,以便解析和执行html文件,就像它们是JSP一样(这样可以在HTML中使用自定义标记和EL).奖励答案,允许任何扩展映射到JSP处理器.
我使用Tomcat,但我希望该解决方案可以移植到其他容器,如Glassfish.
我正在使用angularjs和spring mvc编写一个webapp作为REST服务提供者和一个部分视图提供者(我也使用angular-ui-router,这样我就可以有多个嵌套的部分).我目前对模板语言没有任何用处,因为我计划用角度做所有事情,但是我尝试过的每一个视图解析器都有某种类型的模板语言与angular冲突并且崩溃应用程序和/或填充我的日志有错误.
首先我尝试使用InternalResourceViewResolver,但没有运气,因为它似乎只需要.jsp文件,并且不会显示任何其他内容.
然后我尝试使用Thymeleaf.Thymeleaf遵循XML标准,迫使我重写我的大多数html以遵循xml要求,并且在我完成之后,它在遇到&&ng-show指令内部时死亡.所以也没有运气.
然后我尝试了Velocity.到目前为止,我对速度感到非常幸运.它很好地提供了html文件,在遇到解析错误时不会停止,并允许我以与InternalResourceViewResolver相同的方式提供部分视图.然而,在遇到以$Velocity为前缀的角度变量时,会尝试将它们解析为VTL变量,并使用类似的消息填充我的日志
velocity - Null reference [template 'clients/createOrEdit.html', line 1, column 65] : $invalid cannot be resolved.
一切都在继续,但我不是那个只留下错误的人,而且我发现没有办法禁用VTL.
这是我目前使用视图解析器的经验.
我也有一个想法将.html文件视为静态资源(它们有点像角度之前它的魔力)使用mvc:resources但没有任何视图解析器我的应用程序无法启动,即使我将主layout.html设置为欢迎-file在web.xml中
我的问题是.我应该使用什么作为视图解析器,以便它与angularjs一起使用,如果我甚至应该使用视图解析器?
编辑:我正在尝试使用ContentNegotiatingViewResolver,我得到:
DEBUG ContentNegotiatingViewResolver - Requested media types are [text/html] based on Accept header types and producible media types [*/*])
DEBUG ContentNegotiatingViewResolver - No acceptable view found; returning null
DEBUG DispatcherServlet - Could not complete request
javax.servlet.ServletException: Could not resolve view with name 'layout.html' in servlet with name …Run Code Online (Sandbox Code Playgroud)