将Spring viewresolver映射到html文件的方法

时间:2014-12-29 10:13:09

标签: html xml spring spring-mvc freemarker

我正在使用html文件作为viewResolver在Spring MVC上进行项目。我的项目已经在ftl(freemarker模板)文件中完成了viewResolver。但我想将所有 ftl文件转换为html文件。因此,我已经努力了两天,并在视图解析器中进行了一些配置更改,如下所示,但没有任何效果。

我在applicationContext.xml中的原始代码

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
    <property name="cache" value="true" />
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".ftl" />
    <property name="exposeSpringMacroHelpers" value="true" />
    <property name="exposeRequestAttributes" value="true" />
    <property name="allowRequestOverride" value="false" />
    <property name="exposeSessionAttributes" value="true" />
    <property name="allowSessionOverride" value="false" />
    <property name="exposePathVariables" value="true" />
    <property name="requestContextAttribute" value="rc" />
</bean>

我做了一些改动,如下面

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".html" />
</bean>

我的DispatcherServlet配置

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value></param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

我的html文件位于“/ WEB-INF / views /”文件夹中。我需要做些什么来运行html文件。任何替代方式也热烈欢迎。先谢谢你们......

2 个答案:

答案 0 :(得分:1)

用于实现静态视图的HTML页面,我们在spring中具有很强的功能来呈现静态资源,如html,css和图像,即

<mvc:resources mapping="/static/**" location="/WEB-INF/static/" />

此处提出类似问题SpringViewResolver for HTML views

答案 1 :(得分:0)

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

新创建的文件夹结构:

 WEB-INF
   `-static
          |-html
                `-index.html

Spring config:

<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>

我的web.xml

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value></param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

控制器方法:

@RequestMapping(value = "/", method = RequestMethod.GET)
  public String homePage(ModelMap model, HttpServletRequest servletRequest, HttpServletResponse response) {
    String returnText = "static/html/index";
    return returnText;
}

我搜索并实施了各种方法。它现在像老板一样工作。 以下链接帮助了我并且花了很多时间。还需要使用此解决方案处理各种html文件。

Spring MVC ViewResolver not mapping to HTML files