Может ли Spring VelocityViewResolver обрабатывать несколько типов контента? - PullRequest
2 голосов
/ 07 сентября 2011

Я использую Spring * ContentNegotiatingViewResolver вместе с VelocityViewResolver в приложении REST Spring MVC, которое будет поддерживать множество различных типов ответов.

Я бы хотел, чтобы Velocity мог обрабатывать несколько типов контента, но похоже, что он поддерживает только 1 (текст по умолчанию / html или предоставляется через свойство contentType). В приведенном ниже примере конфигурации я бы хотел, чтобы Velocity поддерживал html, csv и пользовательские типы контента.

Возможно ли это с 1 VelocityViewResolver? или мне нужно настроить один для каждого типа контента?

<bean id="viewResolver" class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="mediaTypes">
        <map>
            <entry key="xml" value="application/xml"/> <!-- MarshallingView -->
            <entry key="json" value="application/json"/> <!-- MappingJacksonJsonView -->

            <!-- Would like the 3 content types below handled by Velocity -->
            <entry key="html" value="text/html"/>
            <entry key="csv" value="application/csv"/>
            <entry key="custom" value="application/custom"/>
        </map>
    </property>
    <property name="viewResolvers">
        <list>
            <bean class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
                <property name="cache" value="false"/>
                <property name="prefix" value=""/>
                <property name="suffix" value=".vm"/>
            </bean>
        </list>
    </property>
</bean>
...