我不知道这对于这个网站是否是一个有效的问题,但我想知道是否有人对 ContentNegotiatingViewResolver 有经验的人可以查看一下,如果我设置正确并帮助我发送 404 消息,请告诉我。
我想做的是将所有没有扩展名的url默认为HTML表示(在我的例子中是freemarker视图)。我想接受附加了“.json”的url来渲染json。这似乎适用于Firefox,即和chrome。我猜它适用于其他浏览器?我确保禁用了接受标头,因为它是一个邪恶的功能,并不像文档所说的那样真正起作用。
我尝试使用“.stuff”访问 url,只是为了看看会发生什么,并且使用我的配置,会出现一个空白屏幕。这可以接受吗?有什么方法可以发送 404 错误吗?
还有什么我可能没有正确配置的吗?
<bean id="contentNegotiatingViewResolver"
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="1"/>
<property name="ignoreAcceptHeader" value="true" />
<property name="defaultContentType" value="text/html" />
<property name="mediaTypes">
<map>
<entry key="json" value="application/json"/>
</map>
</property>
<property name="useNotAcceptableStatusCode" value="true" />
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="contentType" value="application/json" />
</bean>
</list>
</property>
<property name="viewResolvers">
<list>
<bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="contentType" value="text/html" />
<property name="order" value="2"/>
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<property name="suffix" value=".ftl"/>
<property name="exposeSpringMacroHelpers" value="true"/>
</bean>
</list>
</property>
</bean>