Arquivo

Arquivo para categoria ‘Geral’

Versão 3.5.2

12 de Julho, 2011 Rógel Garcia 2 comentários

Liberada a versão 3.5.2 do framework. Verifique no arquivo de Release Notes as mudanças. Baixe na seção de downloads.

Categorias: Geral Tags:

3.5.1 Build 20110420

20 de Abril, 2011 Rógel Garcia Nenhum comentário

Disponibilizado uma versão intermediária do Next. Esse é um nightly build, mas já foi utilizado em alguns projetos com sucesso.

Download JAR next-3.5.1-build20110420.jar
Download Source next-3.5.1-build-20110420-src.zip
Release Notes

Essa versão não foi disponibilizada na seção de downloads pois é um nightly build.
Será necessário fazer o download do arquivo 3.5.1-Full na seção de downloads.
Para utilizar essa versão substitua o JAR do Next, pelo JAR dessa versão.
(Se ao fazer o download, a extensão do arquivo vier como .zip, basta renomear para .jar)

Categorias: Geral Tags:

Novo Tutorial Disponível

19 de Outubro, 2010 Rógel Garcia Nenhum comentário

Um novo tutorial sobre AJAX está disponível na área de Tutoriais. AJAX utilizando a tag a:call

Categorias: Geral Tags:

AJAX utilizando a tag a:call

19 de Outubro, 2010 Rógel Garcia Nenhum comentário

Esse é um tutorial que demonstra algumas utilizações para a tag a:call do next. A tag a:call é uma tag que monta as funções javascript necessárias para se fazer chamadas AJAX.

Chamadas AJAX são basicamente invocações de métodos no servidor de forma assincrona, onde é possível atualizar partes da página atual ou executar operações no servidor sem a necessidadde de recarregar a página inteira. Isso economiza recursos tanto do servidor quanto do cliente, possibilitando aplicações mais ricas e ao mesmo tempo mais eficientes. É um recurso muito utilizado e dá bastante vida as páginas.

Para utilizar a tag a:call do next, é necessário que seu módulo utilize o arquivo base.jsp. Veja a documentação de referência para mais informações sobre o base.jsp. Capítulo 6 – MVC.

O primeiro passo para utilizar a tag, é importar a tag lib de ajax. Para isso, adicione no seu JSP o seguinte import.

<%@ taglib prefix="a" uri="ajax"%>

A taglib ajax possui apenas uma tag call. Dois atributos dessa tag são obrigatórios:

  • functionName, que é o nome da função javascript que será gerada, e que poderá ser invocada pelos seus scripts.
  • action, que é o nome da action no controller que irá receber a chamada.

A tag call possui outros 3 atributos, que são opcionais.

  • callback, que é o nome da função javascript que irá receber a resposta do servidor. Se desejar você pode escrever uma função personalizada para tratar os dados recebidos. A função de callback padrão faz um eval do conteúdo retornado.
  • parameters, que é a lista de parametros a ser passada para o servidor. Os parâmetros devem ser especificados na sintaxe de URL, ex: param1=value1&param2=value2.
  • url, que é a url do controller para onde a chamada deve ser enviada. Se não for informado o controller chamado será o mesmo que recebeu a requisição que renderizou a página.
    A seguir serão apresentados alguns exemplos de utilização da tag. A versão utilizada para testes dos exemplos é a 3.5.1.

    Exemplo 1 – Básico

     

    Nesse exemplo será mostrada a chamada mais simples de chama AJAX. Será renderizado um botão que ao ser clicado envia uma requisição ao servidor, que devolve um comando alert para o browser.

    Controller

    package controller;

    import org.nextframework.controller.Controller;
    import org.nextframework.controller.DefaultAction;
    import org.nextframework.controller.MultiActionController;
    import org.nextframework.view.ajax.View;

    @Controller(path="/modulo/ajax")
    public class AjaxController extends MultiActionController{

        /**
         * Action default.
         * Será chamada pelo browser diretamente para renderizar a página
         * @return
         */
        @DefaultAction
        public String pagina(){
            return "pagina";
        }

        public void actionAjax(){
            /*
             * A classe View possui alguns métodos para facilitar o envio de informações para o cliente.
             * Basicamente cada comando representa um print na saída do response.
             */
            View.getCurrent().alert("Conteúdo AJAX enviado pelo servidor");
        }
    }

     

    JSP (pagina.jsp)

    <%@ taglib prefix="a" uri="ajax"%>

    Essa é a página que utilizará AJAX.

    <button onclick="chamarAjax()">Clique para efetuar o AJAX</button>

    <a:call functionName="chamarAjax" action="actionAjax" />

     

    Exemplo 2 – Alterando o conteúdo do HTML

     

    No segundo exemplo iremos alterar o conteúdo de um DIV, com o conteúdo enviado pelo servidor.

    Controller

    package controller;

    import org.nextframework.controller.Controller;
    import org.nextframework.controller.DefaultAction;
    import org.nextframework.controller.MultiActionController;
    import org.nextframework.view.ajax.View;

    @Controller(path="/modulo/ajax")
    public class AjaxController extends MultiActionController{

        /**
         * Action default.
         * Será chamada pelo browser diretamente para renderizar a página
         * @return
         */
        @DefaultAction
        public String pagina(){
            return "pagina";
        }
        public void actionAjax(){
            //o eval só funcionará se a função callback do cliente for
            //a função default (ou seja, callback não especificado)
            View
                .getCurrent()
                .eval("document.getElementById(’conteudo’).innerHTML = " +
                        "’Novo conteúdo enviado pelo servidor’;")
                .eval("document.getElementById(’conteudo’).style.backgroundColor = " +
                        "’#DEDE55′;"); //é possível enviar vários comandos
        }
    }

     

    JSP (pagina.jsp)

    <%@ taglib prefix="a" uri="ajax"%>

    Essa é a página que utilizará AJAX.

    <div id="conteudo" style="border:1px solid red">
    Conteúdo que será alterado
    </div>

    <button onclick="chamarAjax()">Clique para efetuar o AJAX</button>

    <a:call functionName="chamarAjax" action="actionAjax" />

     

    Exemplo 3 – Enviando parâmetros para o servidor

     

    Nesse exemplo é mostrado como é possível passar parâmetros para o servidor.

    Controller

    package controller;

    import org.nextframework.controller.Controller;
    import org.nextframework.controller.DefaultAction;
    import org.nextframework.controller.MultiActionController;
    import org.nextframework.view.ajax.View;

    @Controller(path="/modulo/ajax")
    public class AjaxController extends MultiActionController{

        @DefaultAction
        public String pagina(){
            return "pagina";
        }
        public void actionAjax(){
            //pegamos o parametro enviado pelo cliente para montar a resposta
            String id = getParameter("id");
            View
                .getCurrent()
                .eval("document.getElementById(’"+id+"’).innerHTML = " +
                        "’Novo conteúdo enviado pelo servidor’;")
                .eval("document.getElementById(’"+id+"’).style.backgroundColor = " +
                        "’#DEDE55′;"); //é possível enviar vários comandos
        }
    }

    JSP (pagina.jsp)

    <%@ taglib prefix="a" uri="ajax"%>

    Essa é a página que utilizará AJAX.

    <div id="conteudo" style="border:1px solid red">
    Conteúdo que será alterado
    </div>

    <button onclick="chamarAjax()">Clique para efetuar o AJAX</button>

    <a:call functionName="chamarAjax" action="actionAjax" parameters="id=conteudo"/>

     

    Exemplo 4 – Parâmetros Dinâmicos

     

    É também possível montar os parâmetros dinamicamente via código javascript, para isso utilizaremos uma construção especial no atributo parameters. Antes de clicar no botão para chamar o AJAX preencha no input o valor 1, 2 ou 3.

     

    Controller

    package controller;

    import org.nextframework.controller.Controller;
    import org.nextframework.controller.DefaultAction;
    import org.nextframework.controller.MultiActionController;
    import org.nextframework.view.ajax.View;

    @Controller(path="/modulo/ajax")
    public class AjaxController extends MultiActionController{

        @DefaultAction
        public String pagina(){
            return "pagina";
        }
        public void actionAjax(){
            //pegamos o parametro enviado pelo cliente para montar a resposta
            String id = getParameter("id");
            View
                .getCurrent()
                .eval("document.getElementById(’"+id+"’).innerHTML = " +
                        "’Novo conteúdo enviado pelo servidor’;")
                .eval("document.getElementById(’"+id+"’).style.backgroundColor = " +
                        "’#DEDE55′;"); //é possível enviar vários comandos
        }
    }

     

    JSP (pagina.jsp)

    <%@ taglib prefix="a" uri="ajax"%>
    <%@ taglib prefix="n" uri="next"%>

    Essa é a página que utilizará AJAX.

    <div id="conteudo1" style="border:1px solid red;">
    Conteúdo que será alterado 1
    </div>
    <div id="conteudo2" style="border:1px solid green;">
    Conteúdo que será alterado 2
    </div>
    <div id="conteudo3" style="border:1px solid blue;">
    Conteúdo que será alterado 3
    </div>

    Digite qual conteúdo deseja alterar (1, 2 ou 3): <n:input type="integer" value="1" id="numero"/>

    <button onclick="chamarAjax()">Clique para efetuar o AJAX</button>

    <a:call functionName="chamarAjax" action="actionAjax" parameters="javascript:’id=conteudo’+document.getElementById(’numero’).value"/>

    Também é possível alterar a montagem dos parametros para delegar a uma função javascript, conforme exemplo:

    <a:call functionName="chamarAjax" action="actionAjax" parameters="javascript:montarParametros()"/>

    <script type="text/javascript">
    function montarParametros(){
        return ‘id=conteudo’ +  document.getElementById(’numero’).value;
    }
    </script>

     

    Como visto nos exemplos a chamada ajax no servidor é feita de forma bem simples. Basicamente a tag a:call monta a função javascript e você apenas chama na sua página onde for necessário. No servidor a classe View, possui alguns métodos utilitários para escrever no response.

    Categorias: Geral Tags:

    Configurar Log para o servidor Tomcat

    30 de Julho, 2010 Rógel Garcia Comentários desligado

    O servidor Tomcat, por padrão não vem com o sistema de log bem configurado. Se acontece uma exceção no sistema por exemplo, ela não é mostrada. Quando estiver utilizando o Next e como servidor o Tomcat, você poderá fazer a configuração do log através do arquivo log4j.properties esse arquivo deve ficar na raiz dos seus fontes (pasta src). Você pode usar como conteúdo desse arquivo o código abaixo, que mostrará mensagens importantes no log.

    # Set root category priority to INFO and its only appender to CONSOLE.
    log4j.rootCategory=INFO, CONSOLE

    # Set the hbm2ddl logger category to FATAL and its only appender to CONSOLE.
    log4j.logger.org.hibernate.tool.hbm2ddl=FATAL, CONSOLE

    # CONSOLE is set to be a ConsoleAppender using a PatternLayout.
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.Threshold=INFO
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern=%-4p: %c{1} %m%n

     
     


    Categorias: Geral Tags:

    Next Framework está na revista Mundo Java

    13 de Julho, 2010 Rógel Garcia 1 comentário

    Edição 42 MundoJ

    A maior revista sobre Java do país, que agora se chama MundoJ, está na edição 42 com um artigo sobre o Next Framework. O artigo está em formato de tutorial, bastante detalhado, sobre como criar uma aplicação do tipo Blog. Abrange vários assuntos, desde a criação de CRUDs, validação até upload de arquivos.

    Parabéns e obrigado a todos os usuários do Next Framework que possibilitam o crescimento e a qualidade da ferramenta.

    Categorias: Geral Tags:

    Documentação atualizada

    A documentação do Next Framework foi atualizada para refletir as mudanças da versão 3.5.1 do framework. Basta acessar a seção de documentação do site.

    Categorias: Geral Tags:

    Versão 3.5.1

    Liberada mais uma versão do framework no dia 19/05/2010. Veja o release notes da versão para saber quais foram as atualizações. Em breve a documentação será atualizada para refletir as mudanças. As principais evoluções dessa versão são:

    Leia mais…

    Categorias: Geral Tags:

    Next Framework no UOL Tecnologia

    3 de Março, 2010 Rógel Garcia Nenhum comentário

    next-uol-2

    Foi publicado um link para o lançamento do Next Framework no site do UOL Tecnologia, dia 03/03/2010. http://tecnologia.uol.com.br/programacao

    Categorias: Geral Tags: , ,

    Versão 3.5.0 Final

    26 de Fevereiro, 2010 Rógel Garcia Nenhum comentário

    Chegamos ao release final da versão 3.5.0 do Next Framework. Obrigado pela colaboração de todos no projeto. Para baixar o next vá atá a seção de downloads. Veja a documentação e tutoriais para explorar ao máximo essa poderosa ferramenta. Aproveite para se cadastrar no fórum e trocar a experiencia com outros usuários.

    Categorias: Geral Tags: