RichFaces – fileUpload component
16/novembro/2009 - Java
Olá
Para quem precisava de um componente de upload em JSF o RichFaces disponibiliza um ótimo. Tem suporte a seleção de multíplos arquivos para upload com a utilização de flash.
Clique aqui para experimentar a demonstração do componente.
Até mais,
Roberto
Versão final do JSF 2.0
19/outubro/2009 - Java
Olá!
O Gilliard Cordeiro publicou um post que me deixou felix ![]()
Mojarra (JSF RI) 2.0 disponível
No blog dele tem muitos exemplos usando JSF 2.0, vale a pena conferir.
Construindo menu dinamicamente com RichFaces
31/maio/2009 - Java
Olá Irei mostrar neste post como montar um menu usando código Java e não a taglib do Rich Faces. Normalmente fariamos assim:
<rich:dropDownMenu>
<rich:menuItem submitMode="server" onclick="document.location.href='index.jsf'">
<h:outputText value="Blue Sky"/>
<a4j:actionparam name="menu" value="blueSky" assignTo="#{MenuMB.skin}"/>
</rich:menuItem>
<rich:menuItem submitMode="server" onclick="document.location.href='index.jsf'">
<h:outputText value="Japan Cherry"/>
<a4j:actionparam name="menu" value="japanCherry" assignTo="#{MenuMB.skin}"/>
</rich:menuItem>
<rich:menuItem submitMode="server" onclick="document.location.href='index.jsf'">
<h:outputText value="Deep Marine"/>
<a4j:actionparam name="menu" value="deepMarine" assignTo="#{MenuMB.skin}"/>
</rich:menuItem>
</rich:dropDownMenu>
Para criar os itens do menu dinamicamente usando uma consulta no banco de dados por exemplo fariamos assim:
[sourcecode language="java" smarttabs="true" 1="</code><code>collapse="true"" 2="</code><code>"]</code>public void atualizaGrupo(){
menuGrupos = new HtmlMenuGroup();
menuGrupos.setLabelClass("Menu de Skins");
List <Menu>novaLista = MenuDAO.getInstance().buscarMenus();
//
for (Menu menu : novaLista) {
HtmlMenuItem novoMenu = new HtmlMenuItem();
FacesContext context = FacesContext.getCurrentInstance();
ELContext elContext = context.getELContext();
Application app = context.getApplication();
ExpressionFactory expressionFactory = app.getExpressionFactory();
//
MethodExpression me = expressionFactory.createMethodExpression(
context.getELContext(),
"#{MenuMB.exibirMenuSelecionado}", String.class, new Class[] {});
novoMenu.setActionExpression(me);
novoMenu.setValue(menu.getDescricao());
// —————————
HtmlActionParameter htmlparam = new HtmlActionParameter();
ValueExpression valueExpression = expressionFactory.createValueExpression(elContext, "#{MenuMB.skin}", String.class);
htmlparam.setAssignToBinding(valueExpression);
htmlparam.setName("menuGrupo");
htmlparam.setValue(menu.getDescricao());
novoMenu.addActionListener(htmlparam);
novoMenu.setOnclick("document.location.href=’index.jsf’");
//
// ———————————
novoMenu.getChildren().add(htmlparam);
menuGrupos.getChildren().add(novoMenu);
}
}<code>[/sourcecode]
O método exibirMenuSelecionado() é usado apenas para exibir no console o valor do atributo skin.
public void exibirMenuSelecionado(){
System.out.println(" Valor de this.skin: "+ this.skin);
}
No XHTML precisamos desse pequeno código.
<rich:menuGroup binding="#{MenuMB.menuGrupos}"></rich:menuGroup>
No managed bean é necessário colocar os atributos
private HtmlMenuGroup menuGrupos; private String skin;
Estou usando a versão 3.2.2.GA. Até mais, Roberto
Novidades no JSF 2.0
28/maio/2009 - Java
Olá!
A especificação do JSF 2.0 está em fase final e já exite uma implementação beta dessa especificação.
Abaixo links interessantes sobre o JSF 2.0.
Jim Driscoll’s Blog
URLs amigáveis no JSF 2.0
Espiando o JSF 2.0
Até mais,
Roberto
JSF (JavaServer Faces) – Exception Handler
31/agosto/2008 - Java, Post Antigos
Olá!
Infelizmente o tratamento de exceções no JSF (JavaServer Faces) não é tão fácil quanto no Struts, enquanto no Struts o tratamento é feito de forma declarativa no struts-config.xml(eu acho mais fácil tratar dessa forma), no JSF é programático, ou seja você escreve o código que trata a exception para mostrar a mensagem correta na página. Geralmente isso é feito diretamente no Managed Bean usando blocos try…catch.
Quando você espera uma exception é intuitivo colocar um bloco try..catch e escrever o código para mostrar uma mensagem na página. Mas e se der um NullpointerException ou alguma outra RuntimeException?
Tratar essas exceptions no JSF de forma genérica não é fácil. Eu consegui fazer isso criando uma classe herdando de ActionListenerImpl, sobreescrevendo o método processAction e incluindo uma chamada ao método processAction() da classe pai dentro de um bloco try…catch. Dentro desse catch é feito um addMessage() com a mensagem a ser mostrada e também é feito o redirecionamento para a página de erro.
Outro problema é que o FacesMessage não suporta a internacionalização de mensagens, por isso foi criada a I18nFacesMessage que implementa esse recurso.
O exemplo do JSF (JavaServer Faces) – Exception Handler pode baixado clicando aqui.
Esse projeto foi feito no Eclipse 3.3 Europa, basta utilizar o recurso de import dele para poder rodar ele.
Utilize o Tomcat 6.0.16.
Até mais,
Roberto