これがこのサイトにとって有効な質問かどうかはわかりませんが、ContentNegotiatingViewResolver の経験がある人がこれを調べて、正しく設定したかどうかを知らせ、404 メッセージの送信を手伝ってくれるかどうか疑問に思っていました.
私がやりたいことは、拡張子のないすべての URL をデフォルトで HTML 表現にすることです (私の場合は freemarker ビューです)。「.json」が追加された URL を受け入れて、代わりに json をレンダリングしたいと思います。これは、Firefox、つまり Chrome で動作するようです。他のブラウザでは動作すると思いますか?ドキュメントに記載されているように実際には機能しない邪悪な機能であるため、acceptヘッダーを無効にするようにしました。
「.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>