Tanto la clase AbstractAtomFeedView
como la clase AbstractRssFeedView
heredan de la clase
base AbstractFeedView
y se utilizan para pasar vistas de fuentes Atom y RSS, respectivamente. Se
basan en el proyecto ROME y están en el rg.springframework.web.servlet.view.feed
.
AbstractAtomFeedView
requiere que implementes el método buildFeedEntries()
y,
opcionalmente, anules el método buildFeedMetadata()
(la implementación predeterminada está vacía). El
siguiente ejemplo muestra cómo hacer esto:
public class SampleContentAtomView extends AbstractAtomFeedView {
@Override
protected void buildFeedMetadata(Map<String, Object> model,
Feed feed, HttpServletRequest request) {
/// implementación omitida
}
@Override
protected List<Entry> buildFeedEntries(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response) throws Exception {
/// implementación omitida
}
}
class SampleContentAtomView : AbstractAtomFeedView() {
override fun buildFeedMetadata(model: Map<String, Any>,
feed: Feed, request: HttpServletRequest) {
/// implementación omitida
}
override fun buildFeedEntries(model: Map<String, Any>,
request: HttpServletRequest, response: HttpServletResponse): List<Entry> {
/// implementación omitida
}
}
Se aplican requisitos similares a la implementación de AbstractRssFeedView
, como se muestra en el
siguiente ejemplo:
public class SampleContentRssView extends AbstractRssFeedView {
@Override
protected void buildFeedMetadata(Map<String, Object> model,
Channel feed, HttpServletRequest request) {
/// implementación omitida
}
@Override
protected List<Item> buildFeedItems(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response) throws Exception {
/// implementación omitida
}
}
class SampleContentRssView : AbstractRssFeedView() {
override fun buildFeedMetadata(model: Map<String, Any>,
feed: Channel, request: HttpServletRequest) {
/// implementación omitida
}
override fun buildFeedItems(model: Map<String, Any>,
request: HttpServletRequest, response: HttpServletResponse): List<Item> {
/// implementación omitida
}
}
Los métodos buildFeedItems()
y buildFeedEntries()
envían una solicitud HTTP si necesita
acceder a la configuración regional. La respuesta HTTP se envía solo para configurar cookies u otros encabezados
HTTP. El canal se escribe automáticamente en el objeto de respuesta después de que regresa el método.
Para ver un ejemplo de creación de una vista de canal Atom, consulte publicación Aleph Arendsen en el equipo de primavera.
GO TO FULL VERSION