이를 지원하는 활동에 제한이 매우 잘 작동스프링 MVC 3의 콘텐츠 협상이 내 스프링 MVC 3 응용 프로그램에서 내용 협상을 구성한
<bean
class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="0" />
<property name="favorPathExtension" value="true" />
<property name="defaultContentType">
<ref bean="htmlMediaType" />
</property>
<property name="mediaTypes">
<map>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</map>
</property>
<property name="defaultViews">
<list>
<bean
class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="objectMapper" ref="jacksonObjectMapper" />
</bean>
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<property name="marshaller">
<bean class="org.springframework.oxm.castor.CastorMarshaller" />
</property>
</bean>
</list>
</property>
<property name="viewResolvers">
<ref bean="tilesViewResolver" />
</property>
</bean>
- 내 모든 뷰와 HTML보기로 렌더링 '일반'뷰 템플릿 또는 'Accept'헤더에 따라 뷰 모델 데이터의 JSON 또는 XML 덤프로 가져올 수 있습니다.
그러나 이것은 약간의 보안 허점 인 것 같습니다. 내 행동 중 일부는 API 스타일 액션이며 HTML 또는 JSON 또는 XML로 합법적으로 사용할 수 있습니다. 그러나 일부보기는 HTML 전용으로 제공됩니다. 나는 최종 사용자가 URL에 ".json"을 추가하는 것만으로 모든보기 데이터를 볼 수 있기를 정말로 원하지 않습니다.
Spring MVC에서 컨텐츠 협상을 수행 할 수있는 방법이 있습니까? 명시 적으로 동의 한 작업에만 해당합니까? @RespondsTo("xml", "json")
과 같은 컨트롤러 특수 효과를 설정할 수 있습니까? 당신이 내용 협상에 사용하는 콘텐츠 형식 (또는 어떤 다른 방법 (들)을 기반으로 볼 수있는 페이지 제한하는 봄 보안을 사용하는 것입니다 할
일 수도 -
/create.json
JSP보기를 표시하여 잘 작동합니다. 최선을 다하는 방법을 좀 더 넓힐 수 있습니까? – Rich