程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring MVC ViewResolver没有映射到HTML文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring MVC ViewResolver没有映射到HTML文件?

开发过程中遇到Spring MVC ViewResolver没有映射到HTML文件的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring MVC ViewResolver没有映射到HTML文件的解决方法建议,希望对你解决Spring MVC ViewResolver没有映射到HTML文件有所启发或帮助;

简单来说:

为了在spring使用静态资源(HTML,CSS,img,Js),请使用类似于以下内容的目录结构:

src/
   package/
   LayoutController.java
WebContent/
   WEB-INF/
    static/
      HTML/
       layout.HTML
      images/
       image.jpg
      CSS/
       test.CSS
      Js/
       main.Js
     web.xml
    springmvc-servlet.xml


@Controller 
public class LayoutController {

 @requestMapPing("/staticPage") 
public String geTindexPage() { 
return "layout.htm"; 

} }




<!-- in spring config file -->
 <mvc:resources mapPing="/static/**" LOCATIOn="/WEB-INF/static/" />

layout.HTML

<h1>Page with image</h1>
<img src="/static/img/image.jpg"/>

解决方法

无法使Spring MVC解决.html视图文件。

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

WEB-INF
      `-views
            |- home.jsp
            `- home.html

我有一个简单的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>

当我击中spaceships/home时,控制器会打印出“ Hello world”消息,并且我看到home.jsp视图没有问题。

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

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

To clarify:

<!-- 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" /> 
</beans:bean>

我已经签入爆炸的war文件夹,可以确认两个主文件都存在。

有人遇到过这样的事情吗?

控制台消息的最后一块:

INFO: Server startup in 5256 ms
Hello,World!
Jul 27,2014 12:52:01 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for http request with URI [/spaceships/WEB-INF/views/home.html] in DispatcherServlet with name 'spaceShips'

谢谢阅读。

===========解决方案===========

以下(丑陋的)配置解决了该问题。可能有多种方法可以解决此问题,但是如果遇到相同的问题,则可以从中组合出解决方案。

Folder structure:

 WEB-INF
       `-static
              |-html
                    `-home.html
              |-css
              `-img

Controller method:

 @requestMapping(value = "/home")
 public String goHome() { 
      System.out.println("lolololololol");
      return "static/html/home";
 }

spring配置:

 <resources mapping="/static/**" LOCATIOn="/WEB-INF/static/" />

 <beans:bean
    class="org.springframework.web.servlet.view.InternalresourceViewResolver">
      <beans:property name="prefix" value="" />
      <beans:property name="suffix" value=".html" />
 </beans:bean>

大佬总结

以上是大佬教程为你收集整理的Spring MVC ViewResolver没有映射到HTML文件全部内容,希望文章能够帮你解决Spring MVC ViewResolver没有映射到HTML文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。