相关疑难解决方法(0)

Spring MVC ViewResolver无法映射到HTML文件

我无法获得spring mvc来解析.html视图文件.

我有以下视图文件夹结构:

WEB-INF
      `-views
            |- home.jsp
            `- home.html
Run Code Online (Sandbox Code Playgroud)

我有一个简单的hello world控制器方法,它只打印一条消息并返回视图名称"home".我有一个home.jsp文件,但想使用home.html.

<!-- Working servlet mapping --> 
<servlet-mapping>
    <servlet-name>spaceShips</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<!-- working servlet context -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <beans:property name="prefix" value="WEB-INF/views/" />
    <beans:property name="suffix" value=".jsp" /> 
</beans:bean>
Run Code Online (Sandbox Code Playgroud)

当我点击太空飞船/家庭时,控制器打印出hello world消息,我看到home.jsp视图没有问题.

问题是当我将后缀更改为.html时.

更改后缀并导航到/ home后,控制器打印消息,但是我在浏览器中看到404错误,控制台中出现以下错误:警告:没有找到带URI的HTTP请求的映射[/ spaceships/WEB-INF/views /home.html]

澄清:

<!-- not working with .html -->
<servlet-mapping>
    <servlet-name>spaceShips</servlet-name>
    <!-- I have tried /* here as well without success -->
    <url-pattern>/</url-pattern>
</servlet-mapping>

<!-- not working with .html-->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <beans:property name="prefix" value="WEB-INF/views/" />
    <beans:property name="suffix" value=".html" /> …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc

20
推荐指数
1
解决办法
5万
查看次数

哪个弹簧视图解析器与angularjs一起玩得很好?

我正在使用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)

spring spring-mvc angularjs

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

spring ×2

spring-mvc ×2

angularjs ×1