Olá! Estou tendo problemas com JSF! Eu estava estudando através do JSF in Action e já havia conseguido executar uma página JSF que fazia tratamento de eventos da seguinte forma: havia 5 campos e dependendo do valor que houvesse no primeiro campo (valor variando de 1 a 5), quando eu clicava no botão, o manipulador de evento colocava valores em cada um dos outros 4 campos. Estes valores eram pré-estabelecidos de acordo com o número de 1 a 5 digitado no primeiro campo (inputText).
Eu deletei este exemplo. Agora estou precisando de fazer algo semelhante a isso e não estou conseguindo de jeito nenhum. É algo simples e parece que não tem nada de errado no meu código, mas num dá certo de jeito nenhum. Estou tentando, por enquanto, apenas fazer uma impressão de uma mensagem na linha de comando quando o botão é pressionado, mas num funciona de jeeeeeito nenhum! Gostaria de saber o que estou fazendo de errado! Para tanto, aqui vai o código!
Observação: estou utilizando o padrão de layout do Core Java Server Faces 2nd. O menu é fixo, o cabeçalho também, mas o conteúdo e variável, de modo que a página do conteúdo (conteudo.jsp) não tem a tag f:view, e o Eclipse enche o saco por causa disso com aqueles sublinhados amarelos.
cadastraEntidade.jsp = utilizando esta aqui primeiro antes de usar a conteudo.jsp propriamente dita<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<h:form id="form1">
<h:panelGrid columns="2" border="1" rules="all" title="Esta é uma demonstração de panelGrid" columnClasses="menu, conteudo">
<f:subview id="atributo1">
<h:outputText value="Nome do Tipo de Entidade"/>
<h:inputText value="#{personBean.nome}" id="nome"/>
</f:subview>
<f:subview id="atributo2">
<h:outputText value="Mnemônico"/>
<h:inputText value="#{personBean.mnemonico}" id="mnemonico"/>
</f:subview>
<f:subview id="atributo3">
<h:outputText value="Objeto Interno"/>
<h:inputText value="#{personBean.oi}" id="oi"/>
</f:subview>
<h:commandButton value="Cadastrar" actionListener="#{personBean.geraEntidade}" />
</h:panelGrid>
</h:form>
package beans;
import java.util.LinkedList;
import java.util.List;
import javax.faces.event.ActionEvent;
import javax.faces.component.UIParameter;
public class PersonBean {
String nome, mnemonico, oi;
List<String> menu, listaDominios;
public PersonBean()
{
System.out.println("Tá vivo!");
}
public List<String> getMenu()
{
LinkedList<String> lista = new LinkedList<String>();
lista.add("Tipo de Entidade 1");
lista.add("Tipo de Entidade 2");
lista.add("Tipo de Entidade 3");
lista.add("Tipo de Entidade 4");
return lista;
}
public void setMenu(List<String> menu) {
this.menu = menu;
}
public String getNome() {
return nome;
}
public void setNome(String nome)
{
this.nome = nome;
}
public String getMnemonico() {
return mnemonico;
}
public void setMnemonico(String mnemonico) {
this.mnemonico = mnemonico;
}
public String getOi() {
return oi;
}
public void setOi(String oi) {
this.oi = oi;
}
public void geraEntidade(ActionEvent e)
{
System.out.println("Funciona!");
/*UIParameter component = (UIParameter) e.getComponent().findComponent("nome");
String valor = (String) component.getValue();
this.setNome("O nome que eu quero");
System.out.println("Gerooooooooooooooou. Veja:");
System.out.println("Nomea antigo: " + valor);*/
}
public List<String> getListaDominios()
{
LinkedList<String> lista = new LinkedList<String>();
lista.add("Enumerado");
lista.add("Biscoito");
lista.add("Simples");
return lista;
}
public void setListaDominios(List<String> listaDominios) {
this.listaDominios = listaDominios;
}
}
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:loadBundle basename="beans.messages" var="msgs"/>
<h:dataTable value="#{personBean.menu}" var="menu">
<h:column>
<h:commandLink>
<h:outputText value="#{msgs[menu]}"/>
<f:param name="pagina" value="#{menu}"/>
</h:commandLink>
</h:column>
</h:dataTable>
<?xml version="1.0"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee">
<navigation-rule>
<navigation-case>
<from-outcome>telaPrincipal</from-outcome>
<to-view-id>/telaPrincipal.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name>personBean</managed-bean-name>
<managed-bean-class>beans.PersonBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<context-param>
</context-param>
<application>
<resource-bundle>
<base-name>beans.messages</base-name>
<var>msg</var>
</resource-bundle>
</application>
</faces-config>
title=Exemplo de Aplicação JSF
textoBotao1 = Teste-me!
itemMenu1=Mensagens
itemMenu2=Usuário
itemMenu3=Pessoa Física
itemMenu4=Pessoa Jurídica
itemMenu5=Entidade