微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在春季获取xml和jsp视图

我正在开发一个可为某些服务提供视图并为其他服务提供网络服务的应用程序.

在控制器中,我已将“ /”映射到视图,并且在应用程序启动时显示了该视图.
现在,当我尝试使用这种视图解析器时

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">  
<property name="mediaTypes">
    <map>
        <entry key="html" value="text/html" />
        <entry key="xml" value="application/xml" />
       </map>
</property>
<property name="defaultviews">
    <list>
    <bean class="org.springframework.web.servlet.view.json.MappingJacksonjsonView" />
    <bean class="org.springframework.web.servlet.view.xml.MarshallingView">
         <constructor-arg>
        <bean class="org.springframework.oxm.xstream.XStreamMarshaller"
            p:autodetectAnnotations="false" />
              </constructor-arg>
    </bean>
    </list>
    </property>
<property name="viewResolvers">
    <list>
        <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
    </list>
    </property>  


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

但是问题是,现在一切都以xml格式出现.所以当我启动应用程序时
认情况下,第一页采用xml格式,但我需要查看.

最佳答案
认情况下,ContentNegotiatingViewResolver使用HTTP接受请求标头来决定呈现哪个视图.如果客户端在该标头中指示它可以处理application / xml内容类型,则它只会发送回XML视图,某些浏览器会这样做.

如果浏览器指示它可以接受HTML和XML,那么您将获得的回报是不可预测的.在没有任何其他信息的情况下,Spring无法确定您想要哪个.

如果您的URL路径只是/,则除了浏览器认发送的内容外,您没有提供其他有用的信息.

通过将favorPathExtension属性设置为true,可以将ContentNegotiatingViewResolver重新配置为使用URL中的文件扩展名来决定要解析的视图.例如,这将优先使用Accept标头,以XML响应对/blah.xml的请求.

ContentNegotiatingViewResolver还有其他一些选择,建议您仔细阅读javadoc.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐