|
Xdoclet - Portlet Module & Spring Porlet MVC |
|
Escrito por Abner Ballardo
|
|
01.04.2006 |
Xdoclet - Portlet Module & Spring Porlet MVC | | | | | Nadie puede negar que la programación orientada a atributos es muy util. Pues bien, estuve jugando con Spring Framework 2.0M3, en especial el modulo para Porlets. Según la regla que sigo: "Mientras menos hago más avanzo", decidí usar el modulo Xdoclet para generar el archivo portlet.xml. Definí un controlador con los respectivos tags: package com.stconsulting.sample.web.portlet.controller; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import org.springframework.web.portlet.ModelAndView; import org.springframework.web.portlet.mvc.AbstractController; /** * @portlet.portlet name="SamplePortlet" * portlet-class="org.springframework.web.portlet.DispatcherPortlet" * display-name="Sample Portlet" expiration-cache="0" * * @portlet.portlet-init-param name="contextConfigLocation" * value="/WEB-INF/context/sample/applicationPortlet.xml" * * @portlet.supports mime-type="text/html" * modes="view,edit,help" * * @portlet.portlet-info title="Sample Portlet" keywords="Sample" * short-title="Sample" * * @author Abner Nazario Ballardo Urco */ public class SamplePortlet extends AbstractController { public ModelAndView handleRenderRequestInternal(RenderRequest request, RenderResponse response) throws Exception { return new ModelAndView("sample", "model", "hello"); } } | Pero XDoclet no generaba correctamente el archivo (estaba en blanco), en fin,... luego de varias pruebas encontre que el archivo portlet_xml.xdt tenía esta definición <XDtClass:forAllClasses type="javax.portlet.GenericPortlet"> <XDtClass:forAllClassTags tagName="portlet.portlet" superclasses="true"> <portlet> ............... | Como vemos se indica que solo procese las clases que extiendan de javax.portlet.GenericPortlet, para poder usar libremente XDoclet Porlet Module con Spring solo necesitamos modificar el archivo .xdt que se encuentra en: JAR: xdoclet-portlet-module.jar Ruta: /xdoclet/modules/portlet/resources/portlet_xml.xdt <XDtClass:forAllClasses> <XDtClass:ifHasClassTag tagName="portlet.portlet"> <XDtClass:forAllClassTags tagName="portlet.portlet" superclasses="true"> <portlet> ............... </XDtClass:forAllClassTags> </XDtClass:ifHasClassTag> </XDtClass:forAllClasses> | |
Recomiende este artículo... |
No está autorizado a dejar comentarios - Por favor, ingrese como usuario.