Plugins novos para o NetBeans disponibilizados pela SUN :D

A SUN anunciou a disponibilização de quatro novos plugins para o NetBeans. Eles são:

  1. Jackpot - (chamado de "intelligent code re-engineering" na documentação) tem a habilidade de executar transformações vis script no código java. e também transformações globais ao projeto, utilizando um modelo em memória do mesmo.
  2. Real-Time Java Technology
  3. WSIT - Web Services Interoperability Tecnology, ajuda a facilitar o desenvolvimento de Web-Services cross plataforma, facilitando o desenvolvimento de WS que seguem os padrões WS-I.
  4. Grid Compute Server for NetBeans, criado para ajudar os desenvolvedores a utilizar a plataforma de Grid Computing da SUN.

Os 4 modulos podem ser encontrados no site do projeto http://www.netbeans.org

Post original no TSS.

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

Gilberto Gil se coloca do lado dos hackers

Finalmente, nunca tinha visti ninguem "não geek" saber qual a diferença entre hacker e cracker, esta na hora do pessoal da midia parar de falar besteira pro ai, e seguir o exemplo do nosso ministro :D
Vejam este trecho de uma palestra do ministro Gilberto Gil.

SÃO PAULO – O ministro da Cultura, Gilberto Gil, elogiou a cultura hacker que classificou como “inovadora e solidária”. Gil fez a declaração no evento Internet Global Congress, que ocorre em Barcelona, Espanha.

"Eu, Gilberto Gil, como ministro de Cultura do Brasil e como músico trabalho a cada dia com o impulso da ética hacker. Os hackers inovam, resolvem problemas e exercitam a organização de cooperação mútua e voluntária”, disse o ministro, em declaração reproduzida por agências internacionais.

Gil explicou que é preciso, no entanto, diferenciar o hacker do cracker. Enquanto este último dedica-se a atividades criminosas, o hacker é, na opinião do ministro, um "militante da contracultura a ver no computador uma fantástica ferramenta de comunicação".

Gil disse ainda que é preciso enxergar o hacker de um novo ponto de vista e não sob a ótica da “ortodoxia analógica reacionária".

Em sua palestra, o ministro defendeu o uso do software livre e elencou algumas medidas do governo federal para popularizar o acesso à informática e à internet.

aqui esta o link para a página original da info exame :D

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

No mundo nada se cria, tudo se copia - e melhora um pouquinho :D

O pessoal do JBoss Seam teve uma ideia espetacular …
Utilizar o Hibernate Validator que eu ja utilizaria de qualquer forma na camada de persistencia, como validação na camada VIEW (JSF).
pois é, eu vi e gostei da ideia, mas eles colocam apenas como mensagens globais, ou seja, não fica a mensagem de erro ao lado do componente que teve o erro de validação …
Eu fiz uma implementação semelhante para ser utilizada no spring-annotation, mas a minha implementação coloca o clientID na mensagem, e esta aparece ao lado do input correto, funcionando direitinho :D

Tah muito fácil de usar, os exemplos de implementação ja estão quase prontos, mas basicamente a unica coisa a ser feita para usar isto, é no metodo correspondente a action colocar uma anotação @IfInvalid.

Amanha posto uns exemplos de código aqui :D

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

Propagandinha básica :D

Só uma propagandinha básica, ja que o blog é meu mesmo :D
olha só eu no baguete (tah, eu sei que não da nem um paragrafo direito, mas mesmo assim é legal :D )

Consultor da Advanced IT é colunista e editor da DevMedia
26/05/2006 13:03

 
 

O analista de Sistemas da Advanced IT, Rodrigo Urubatan Ferreira Jardim, ministrou o mini-curso “Spring Framework com Tecnologia Java” no evento Developers WebDays da Dev Media, que acorreu esta semana em São Paulo.

Depois da participação, profissional acabou sendo convidado para ser colunista do site da Dev Media e integrar a equipe de editores das revistas da empresa.

"
Link(s) Relacionado(s): Advanced IT.

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

Exemplos de utilização spring-annotation

Estão quase prontos os primeiros exemplos de utilização do spring-annotation.
Ainda não estão disponiveis binários ou zips prontos para download, mas quem quiser dar uma olhadinha antes deles finalizados, contribuir ou só chingar o que estamos fazendo pode dar uma olhada no repositório do Subversion do projeto.
Mais informações aqui na pagina do projeto do dev.java.net.

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

spring-annotation aprovado no Java.net

O projeto do qual eu falei algumas vezes por aqui acabou de ser aprovado no java.net.
Quem quiser mais informações, quiser baixar os jars ou o código fonte, contribuir com documentação, código, testes ou quiser apenas olhar o que este desocupado andou aprontando desta vez …

Basta dar uma olhadinha na página do projeto aqui no https://spring-annotation.dev.java.net/.

Ja tem jars disponiveis para download aqui, e o código fonte pode ser visto aqui na mesma página tem informações para acesso ao subversion do dev.java.net!

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

Novidades

  • O mini curso que ministrei no evento DevMedia WebDays estava muito legal, acho que tinha umas 200 pessoas na sala, o pessoal parece que gostou bastante (se alguem assistiu e não curti o mini curso pode me xingar por aqui mesmo, e se quiser elogiar também pode :D )
  • O evento em si estava muito bom, tinha bastante gente, o networking rolava solto, esperem por novas parcerias :D
  • Não sei se alguem percebeu, mas agora tem banners ali no topo da página antes dos posts, alguem não gostou deles ou acha que eles estão atrapalhando?
  • Finalmente conheci o tal do O'malleys que o pessoal do GUJ tanto gosta de ir, o lugar é bem legal mesmo, mas pagar R$16 por um pinch de chop era totalmente desnecessário, se bem que o chop era tri bom :D
  • Achamos no meio do centro de SP um restaurante legal pra almoçar e que cobra só R$9,90 o buffet livre, até que a comida era gostosa :D

Bom, por quenato era isto, entre hoje e amanha devo mandar o exemplo e slides usados pro pessoal da devmedia, e eles disseram que vão disponibilizar no site depes para download, assim que eu ficar sabendo o endereço certinho coloco aqui no blog pra quem quiser :D

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

Java vai ser Open Source. Como?

Como alguns já esperavam o novo CEO da Sun Microsystems, Jonathan Schwartz, anunciou que pretende tornar a linguagem Java uma linguagem de Código Livre. Segundo ele, a única pergunta que precisa ser respondida é como isto será feito.

A comunidade Open Source sempre rejeitou o Java devido a sua licença "semi-aberta". Com este movimento a Sun pretende aumentar a popularidade do Java perante a comunidade de Software Livre.
Como consequência a JVM da Sun pode passar a vir na maioria das distribuições Linux.
Por outro lado, a Java Open Source não está sendo bem visto por algumas empresas e desenvolvedores que temem as versões incompatíveis, que poderão ser criadas por qualquer um.
Há 10 anos a Linguagem Java tem sido bem sucedida com o seu modelo de desenvolvimento, baseado no JCP. Esta estabiliadade pode ser perdido com esta decisão.
Java Open Source é bom ou ruim? Esta é uma briga antiga e a resposta é "veremos".
Você é a favor ou contra ao Java Open Source?
Responda a enquete no PortalJava.

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

Tutorial J2ME em Porto Alegre

O Grupo de Usuários Java do Rio Grande do Sul convida pra mais um evento realizado em Porto Alegre.

Tutorial J2ME: Java na palma da mão
Palestrante: Mauricio Leal - SouJava
Local: SEPRORGS
Data: 20/05/2006
Valor: R$ 15,00
Agenda:
8:30 as 9:00 ? Cadastramento (Com pagamento no Local)
9:00 as 10:30 - Tutorial J2ME: Java na palma da mão
10:30 as 10:45 ? Break
10:45 as 12:00 - Continuação do Tutorial

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

Developers WebDays - Evento 100% prático

Ja esta quase na hora. O Developer WebDays da DevMedia começa na semana que vem!
O evento vai acontecer nos dias 19 e 20 de maio de 2006, contando com palestras e mini cursos 100% práticos.
Aprenda a desenvolver uma loja virtual em Java, .NET, Delphi. Alem dos tres mini cursos, os participantes terão a oportunidade de aprender sobre AJAX, ATLAS, Desgin Patterns, LINQ, Chrome, Programação Orientada à Objeto, Cristal Report, Web Parts, Struts, além de milhares de dicas essencias para a construção de poderosas aplicações web.

Eu vou ministrar um dos mini cursos ensinando a desenvolver uma loja virtual em Java, utilizando Spring, Hibernate e JSF.
Também vai ter um pouquinho de AJAX, só estou pensando ainda se utilizo ou não no exemplo a biblioteca spring-annotations que estou desenvolvendo (quem acompanha o blog ja deve saber do que se trata :D )

A aplicação ficou até bem legal (fora o layout pq eu sou péssimo com isto :D )
Utilizando o DWR para remoting, possibilidade de disponibilizar qualquer um dos objetos de negócio como WebService.
Fiz totalmente separado todo o código da aplicação e depois com o auxilio de uma IDE monto a interface do usuário, depois desta pronta testada e funcionando, altero ela para utilizar um pouquinho de AJAX.

e tudo isto fazendo sempre passo a passo e dizendo por que, onde e como fazer cada pedacinho.

Acho que vai ficar legal dentro das 7h do mini tutorial.

Espero vocês por la!

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

Spring-annotations - Reloaded!

Algumas atualizações, dicas para build, e uma versão ja compilada para quem quiser testar.
bom, comoquei aqui os fontes do projeto, e aqui um jar ja compilado.
Adicionei como utilitário uma nova "AutomaticAnnotationSessionFactoryBean" para quem trabalha com Hibernate, a ideia é simplesmente substituir a AnnotationSessionFactoryBean por esta classe, que todas as classes que tiverem a anotação @Entity serão detectadas automagicamente, com a mesma restrição para poupar memória, só serão localizadas classes que estiverem em um jar ou diretório qe tiverem um arquivo com o nome de to.properties na raiz.
As anotações disponiveis são as mesmas deste e deste post.
Os Jars necessários para compilação são os seguintes:

  • hibernate-annotations.jar
  • persistence.jar
  • spring.jar (to usando o 2.0m4 por causa do esquema dos escopos)
  • spring-hibernate3.jar
  • commons-logging.jar
  • hibernate3.jar

E se quiserem utilizar o suporte a webservices (não escrevi código para isto, só coloquei a conf de integração do xfire no application-context.xml)

  • xfire-all-1.1
  • xfire-jsr181-api

Removi a parte de JSF que eu havia escrito para outro projeto, e corrigi um bug que fazia com que o escopo não funcionasse.

Se alguem estiver com vontade de ajudar, precisa de documentação, não tem nenhuma.

E principalmente testes, estou utilizando em um projeto, mas até o momento só eu estou testando ele, então estes testes não contam muito :D

Bom, por enquanto era isto, acho que o pessoal do hibernate vai acabar não incluindo isto.

Enviei um e-mail para os owners do projeto spring-modules para ver se eles estão afim de incluir isto no projeto deles, caso eles digam que não ou não respondam até o fim da semana crio um projetinho no java.net para colocar isto :D

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

SpringLabs?!?!?!?!?

O que vcs acham da ideia?
Algo tipo o SwingLabs, para usuários do spring …
mas focado só em produtividade e evitar necessidade de configuração.
Configuração via annotation, facilitar a utilização do spring MVC, JSF, …
acham que teriamos ideias suficientes?
acham que teria força de trabalho pra isto?
to viajando?

Bom, acho que considerando a quantidade de tempo que tenho disponivel, isto é viajar demais, ja que não to com praticamente nenhum tempo :(
mas to usando a lib que postei estes dias (aqui e aqui) em um projeto, e fazendo algumas atualizações e correções nela, então assim que tiver mais alguma coisa para mostrar eu posto aqui, desta vez quero ver se arrumo o projeto direitinho, vou deixar a parte do JSF separada, e deixar versões compiladas e o projeto compilavel ja com as libs necessárias.
enquanto aproveito para atualizar para o Spring Framework 2.0M4 :D
se bem que a unica parte que realmente tem dependencia é o escopo do Bean, acho que para deixar isto independente vou deixar em uma tag separada, ai quem estiver com uma versão mais antiga do spring pode usar todo o resto …
Estou em duvida entre isto e fazer a minha propria implementação de escopos em vez de usar a do spring 2.0, mas acho que isto não vai rolar :D

Bom comentários, e voluntários serão bem vindos :D

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

Links quebrados dos downloads

Existiam alguns links quebrados para quem tentou baixar os arquivos das palestras e artigos do meu blog.
Ja esta tudo resolvido, quem quiser baixar o material é só clicar aqui.

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

spring-annotations - acabei de enviar para o JIRA do spring framework

Acabei de enviar para o JIRA do Spring Framework o código que eu escrevi para configuração do spring framework usando anotações em vez de XML, quem quiser dar uma olhada nos fontes ou testar pode baixar eles no link a baixo.
http://opensource.atlassian.com/projects/spring/browse/SPR-1987

A ideia não é remover 100% do XML, mas deixar em XML apenas o que é realmente configuração da aplicação, como por exemplo na aplicação em que utilizei isto, continuam como XML:

  • viewResolver
  • dataSource
  • configuração do hibernate (o discovery dos beans do hibernate estou pensando em usar o mesmo scanner para as anotações)
  • configuração do gerenciador de transações, …

Agora, não vejo por que para cada DAO, ou para cada Controller que eu crio eu tenho que escrever o código em Java e depois configurar ele em um XML.
Aproveitei e ja deixei configurado o suporte do XFire a integração com o spring e web services via anotações da JSR 181, ou seja, para eu criar um Web Service na aplicação, gerenciado pelo spring, basta:
@Bean(name="testeWebService")
@WebService(serviceName = "TesteService")
public class TesteWebService {
    @WebMethod
    public String echo(String val){
        return "Hello "+ val;
    }
    @WebMethod
    public Double soma(Double v, Double v1){
        return new Double(v.doubleValue()+v1.doubleValue());
    }
    @WebMethod
    public Email enviaEmail(Email email){
        return email;
    }
}

e pronto, posso acessar meu webservice, e posso baixar o WSDL dele :D

utilizei o spring 2.0-M4 para testar isto, mas deve funcionar com qualquer versão do spring framework.

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

Spring sem XML, é possivel?

A algum tempo atraz falei de configurar o spring via código java, como a ideia usada no Mentaway, acabei achando algumas coisas não tão fáceis de fazer quanto eu achava que seriam, e como ninguem mais se interessou no projeto (que nem cheguei a publicar em lugar nenhum pra falar a verdade), acabei abandonando a ideia.
Trabalho a algum tempo ja com o Spring framework, ele ja me salvou a vida em alguns clientes diversas vezes, só que sempre achei um saco de configurar tudo em XML, pq não é nem só o XML do Spring, tem o XML do Hibernate, o web.xml, o do Spring, …
Agora com o JDK 1.5, as annotations facilitam bastante a vida, são necessárias muito menos anotações do que código XML para configurar a mesma coisa, e também é a ultima moda utilizar elas para substituir os meta dados em XML por meta dados na propria classe :D
Então até este momento, depois de umas 8 horas de trabalho, brincando com o spring, annotations, etc, tenho uma pequena biblioteca que facilita bastante a programação usando o Spring Framework (e até um pouco o uso de JSF, mas ainda não trabalhei muito nesta parte)

Instalação:
copiar o jar para o WEB-INF/lib
editar o web.xml para colocar o seguinte:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>TO - Novo Site</display-name>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:applicationContext.xml</param-value>
    </context-param>
    <context-param>
        <param-name>contextClass</param-name>
        <param-value>
            br.com.techoffice.spring.web.TOAnnotationXmlWebApplicationContext
        </param-value>
    </context-param>
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <filter>
        <filter-name>requestContext</filter-name>
        <filter-class>
            org.springframework.web.filter.RequestContextFilter
        </filter-class>
    </filter>
    <filter>
        <filter-name>extensionsFilter</filter-name>
        <filter-class>
            org.apache.myfaces.component.html.util.ExtensionsFilter
        </filter-class>
    </filter>
    <filter-mapping>
        <filter-name>requestContext</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>extensionsFilter</filter-name>
        <url-pattern>*.jsf</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>
    <filter-mapping>
        <filter-name>extensionsFilter</filter-name>
        <url-pattern>/faces/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.to</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

Verifiquem que a unica coisa que não é padrão JSF/Spring MVC são as poucas linhas em negrito :D
um dispatcher-servlet.xml praticamente em branco, só pra evitar o erro do spring (ainda to trabalhando nisto)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"
    default-autowire="byName">
</beans>

Criar dentro do diretório de contes da aplicação um arquivo com o nome de to.properties, que pode estar até em branco.
Pronto, não sera mais necessário mexer em XML na aplicação, a não ser que se deseje :D

A partir dai, se "registra" um bean no spring assim:
package br.com.techoffice.site.dao.impl;

import br.com.techoffice.site.dao.CurriculoDao;
import br.com.techoffice.site.data.Curriculo;
import br.com.techoffice.spring.annotation.Bean;

@Bean(name="curriculoDao")
public class CurriculoDaoImpl extends TOBaseHibernateDao<Curriculo, String> implements CurriculoDao {
    public CurriculoDaoImpl() {
        super(Curriculo.class);
    }
}

prontinho, a engine vai encontrar ele e este vai ser registrado no contexto, como se fosse colocado no XML, tah, mas e dai o que melhorou até agora?
bom, até o momento só o fato de estar tudo em um só lugar.
o Autowire continua funcionando normalmente, ou seja, neste caso ai, este bean precisa de um sessionFactory do hibernate, e este sera fornecido para ele automaticamente.

tah, mas e se eu quiser trabalhar com o Spring MVC?

@Bean(name = "emailSender", singleton = false)
@UrlMapping("/enviaemail.to")
public class EmailSender implements Controller {
    private MailUtility mailUtility;

    private EmailDao emailDao;

    @SuppressWarnings("unchecked")
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //…
        return new ModelAndView("contatos");
    }

    public void setMailUtility(MailUtility mailUtility) {
        this.mailUtility = mailUtility;
    }

    public void setEmailDao(EmailDao emailDao) {
        this.emailDao = emailDao;
    }
}

Registrei o bean no spring framework, utilizando o @Bean, e configurei a URL dele usando @UrlMapping.

lógico, isto não é a abolição do XML, eu não iria querer configurar via anotações de onde vem o meu data source, ou servidor de e-mails por exemplo, isto eu posso continuar configurando via properties ou XML do spring como eu sempre fiz, e configurar isto dependendo do ambiente de deployment (teste/produção/…)
A ideia disto é simplesmente evitar que se escreva XML para o que não é "configuração" é apenas meta dado da aplicação mesmo .

Até o momento, ja fiz funcionar/inventei, as seguintes anotações:

  • @Bean - Correspondente a <bean> do spring
  • autoWire (NO, BY_NAME, BY_TYPE, INHERITED)
  • dependencyCheck
  • destroyMethod
  • factoryMethod
  • initMethod
  • lazy
  • name
  • scope (APPLICATION, REQUEST, SESSION)
  • singleton
  • @UrlMapping - define o mapeamento do controller
  • @UrlMappings - permite colocar diversos mapeamentos para o mesmo controller
  • @WebService - expõem o bean como um web service, utilizando o XFire, por enquanto é preciso especificar o nome do serviço a ser exposto (acho que vou deixar o nome do bean como default) e a interface que deve ser exposta, vou mudar esta anotação para a da JSR que especifica exatamente isto :D
  • @Property
  • @ConstructorArgs
  • Por enquanto é isto que foi feito para spring+annotations.

    Para o JSF foi só colocar um faces-config.xml dentro do diretório META-INF para este ser localizado automagicamente, onde esta configurado o VariableResolver do spring, e um navigation handler costumizado, que faz com que o JSF seja mais aderente a "Padrão sobre configuração" ou seja a minha aplicação JSF consiste de:
    uma classe
    @Bean(name = "test", scope = Scope.REQUEST, initMethod = "init")
    public class TestObject {
        private static final Log logger = LogFactory.getLog(TestObject.class.getName());

        public String action() {
            return "teste1";
        }

        public String nome() {
            return "teste2";
        }

        public void init() {
            logger.debug("init");
        }

    }

    nenhuma alteração em arquivo XML nenhum
    uma página JSF que vai chamar algum metodo deste Bean, por exemplo:
    <%@ page contentType="text/html;charset=windows-1252"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
    <html>
    <body>
    <f:view>
        <h:form>
            <h:commandButton action="#{test.action}">
                <h:outputText value="Teste" />
            </h:commandButton>
            <h:commandButton action="#{test.nome}">
                <h:outputText value="Teste1" />
            </h:commandButton>
        </h:form>
    </f:view>
    </body>
    </html>

    e considerando que o nome do bean é "test", quando um metodo dele retornar, por exemplo, "teste1", o navigationHandler que eu implementei, vai renderizar o arquivo "/test/teste1.jsp"

    ou seja o nome do bean é o nome da pasta, e o nome do bean é o nome da pasta, e o resultado do metodo o nome da view do resultado desejada :D

    continua funcionando o comportamento padrão do JSF para o caso de retornar uma string em branco ele fica na mesma página :D

    mas por enquanto era isto, acho que vou enviar o código que implementei até agora para o pessoal do spring para ver o que eles acham :D

    se alguem tiver alguma sugestão ela sera bem vinda :D

    Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!