java spring velocity 视图解析找不到 40C

图片说明

配置文件:

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.3.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">


<!--    <bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/"></property>
        &lt;!&ndash; 视图名后缀 &ndash;&gt;
        <property name="suffix" value=".html" />
    </bean>-->

    <!-- 加载静态资源 -->
    <mvc:default-servlet-handler />
    <mvc:annotation-driven />

     <bean id="velocityConfig"
           class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
         <property name="resourceLoaderPath">
             <value>/WEB-INF/</value>
         </property>


         <property name="velocityProperties">
             <props>
                 <prop key="input.encoding">UTF-8</prop>
                 <prop key="output.encoding">UTF-8</prop>
                 <prop key="contentType">text/html;charset=UTF-8</prop>

                 <prop key="file.resource.loader.cache">false</prop>
                 <prop key="file.resource.loader.modificationCheckInterval">1</prop>
                 <prop key="velocimacro.library.autoreload">true</prop>
             </props>
         </property>
     </bean>
     <bean id="viewResolver"
           class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
         <property name="suffix" value=".html" />

       <!--  &lt;!&ndash; 使用springMacro、使用servlet的对象 &ndash;&gt;-->
         <property name="exposeSpringMacroHelpers" value="true" />
         <property name="exposeRequestAttributes" value="true" />
         <property name="exposeSessionAttributes" value="true" />
         <property name="requestContextAttribute" value="rc" />
         <property name="dateToolAttribute" value="date" /><!--&lt;!&ndash;日期函数名称&ndash;&gt;-->

         <property name="contentType" value="text/html;charset=UTF-8" />
     </bean>



</beans>

java代码:

 @Controller
@RequestMapping("/test")
public class TestController {


    @RequestMapping(value = "/test", method = {RequestMethod.GET})
    public String merchantLogin(HttpServletRequest request, ModelMap modelMap) throws Exception {

        return "/html/test";
    }
    }

html:

 <!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title11111111</title>
</head>
<body>
222222222222222222
</body>
</html>

第一张图是报错信息,下面是控制台输出信息
[ERROR] velocity: ResourceManager : unable to find resource '/html/test.html' in any resource loader.

分不多见谅,求助!!!

7个回答

这些配置不知道会不会影响到。

     <context:component-scan base-package="com.shiyu.*.controller"/>

    <!-- 配置数据转换服务 -->
    <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="com.shiyu.core.converters.DateConverter"></bean>
                <bean class="com.shiyu.core.converters.TimestampConverter"></bean>
            </set>
        </property>
    </bean>
    <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
    <!-- 配置数据绑定, 依赖数据转换服务进行绑定 -->
    <bean id="webBindingInitializer" class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
        <property name="conversionService" ref="conversionService"/>
    </bean>

    <!-- 配置HTTP消息转换器 -->
    <bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
        <constructor-arg value="utf-8"/>
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=utf-8</value>
                <value>application/xml;charset=utf-8</value>
                <value>application/json;charset=utf-8</value>
            </list>
        </property>
    </bean>
    <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter" />

    <!-- RequestMappingHandlerAdapter 负责处理请求参数到处理方法参数的绑定以及数据类型转换等工作 -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="webBindingInitializer" ref="webBindingInitializer"/>
        <property name="messageConverters">
            <list>
                <ref bean="stringHttpMessageConverter"/>
                <ref bean="fastJsonHttpMessageConverter"/>
            </list>
        </property>
    </bean>

    <bean id="integrateExceptionHandler"  class="com.shiyu.core.handlers.IntegrateExceptionHandler" ></bean>

你的controller返回的时候把第一个“/”去掉试试

qq_15643155
边走边看_ 去掉之后还是500
接近 3 年之前 回复

目前来看 楼上说的对

图片说明

为视图解析器配上ORDER,让默认解析器优先级为最后

个人觉得可能是有以下两种情况:
第一种:controller中返回是的第一个/的问题,这样取得应该是项目的根路径,
也就是说你项目下有一个html文件夹,这个文件夹下有一个test.html文件,因此去看看有没有
第二种清情况的话,可能是视图解析器的原因,因为你写的是html页面,但是它可能解析不了,当然这个我也只是猜测,
一般情况下,web中都使用jsp页面,我还没用解析过html页面呢

如果去掉controller里面第一个“/”不行的话,建议楼主改下配置,把
/WEB-INF/

改成
/WEB-INF/html/

controller里面直接返回test试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问