domingo, 8 de agosto de 2004

WebWork gerando conteudo XUL

Muita gente me perguntou como utilizar o WebWork com o XUL. Uns não tinham idéia de como fazer, outros não estavam conseguindo. Então aqui vai umas dicas de como fazer.



O Mozilla, para interpretar arquivos XUL, tem que receber o content type igual a application/vnd.mozilla.xul+xml. Esse era o problema de 100% dos que me perguntaram como gerar dinâmicamente telas em XUL.



Para integrar com o WebWork é necessário seguir estes passos:

  • Crie um tipo de retorno personalizado seu incluindo como primeiro elemento dentro da tag <package>



    <result-types>

       <result-type name="xul" class="seupacote.SuaClasseResult"/>

    </result-types>




  • Crie a classe seupacote.SuaClasseResult extendendo alguma classe de resultado do WebWork. São classes de resultado ServletDispatcherResult, ServletRedirectResult, VelocityResult entre outras. Sobreescreva o método getContentType



    package seupacote;



    import com.opensymphony.webwork.dispatcher.VelocityResult;



    public class SuaClasseResult extends VelocityResult {



       protected String getContentType(String templateLocation) {

         return "application/vnd.mozilla.xul+xml";

       }



    }




  • Coloque o tipo de retorno que nas acoes



    <result name="success" type="xul">
Pronto, agora sua aplicação com o WebWork já pode gerar telas dinâmicas em XUL!

Nenhum comentário:

Postar um comentário