Luiz_Aguiar 22 de abr. de 2008
vc esta falando do JBoss Richfaces 3.2? é isso?
não existe JSF 3.2, verifique ai amigo, qualquer coisa altere o título do post tbm por favor.
robson_vs 22 de abr. de 2008
Cara da uma olhada neste post q deve te ajudar
antoniopopete 22 de abr. de 2008
Eu já tinha visto esse post.
Consegui resolver esses problemas iniciais de dependências de jar,etc.
Agora a questão fica por conta de estar dando um erro de nullpointer no meu selectItem na hora de iniciar.
Quando chamo o jsf. Só que instancio o mesmo, no construtor.
robson_vs 22 de abr. de 2008
robson_vs:
Cara da uma olhada neste post q deve te ajudar
Eu já tinha visto esse post.
Consegui resolver esses problemas iniciais de dependências de jar,etc.
Agora a questão fica por conta de estar dando um erro de nullpointer no meu selectItem na hora de iniciar.
Quando chamo o jsf. Só que instancio o mesmo, no construtor.
tem certeza q sua lista ñ está retornando nula?
antoniopopete 22 de abr. de 2008
Acredite, antes da lista iniciar.
Porque n construtor eu faço = new ArrayList<SelectItem>();
Então, não tem como ela ser nula…
robson_vs 23 de abr. de 2008
posta seu mbean para dar uma olhada
antoniopopete 23 de abr. de 2008
package br.projeto.faces ;
import java.util.ArrayList ;
import java.util.List ;
import javax.faces.model.SelectItem ;
import br.ucsal.projeto.bo.InstituicaoBO ;
import br.ucsal.projeto.model.CursoModel ;
import br.ucsal.projeto.model.InstituicaoModel ;
public class CadastroMapaFaces {
private CursoModel cursoModel ;
private List < SelectItem > instituicoes ;
private List < SelectItem > cursos ;
private InstituicaoBO instituicaoBO ;
public CadastroMapaFaces () {
instituicaoBO = new InstituicaoBO ();
this . limpar ();
}
private void limpar () {
this . cursoModel = new CursoModel ();
this . getInstituicoesCadastradas ();
this . instituicoes = new ArrayList < SelectItem > ();
this . cursos = new ArrayList < SelectItem > ();
}
private void getInstituicoesCadastradas () {
this . instituicoes = new ArrayList < SelectItem > ();
for ( InstituicaoModel instituicaoModel : this . instituicaoBO . findAll ()) {
this . instituicoes . add ( new SelectItem ( instituicaoModel . getId ()
. toString (), instituicaoModel . getSigla ()));
}
}
public CursoModel getCursoModel () {
return cursoModel ;
}
public void setCursoModel ( CursoModel cursoModel ) {
this . cursoModel = cursoModel ;
}
public List < SelectItem > getInstituicoes () {
return instituicoes ;
}
public void setInstituicoes ( List < SelectItem > instituicoes ) {
this . instituicoes = instituicoes ;
}
public List < SelectItem > getCursos () {
return cursos ;
}
public void setCursos ( List < SelectItem > cursos ) {
this . cursos = cursos ;
}
}
Faces-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns= "http://java.sun.com/xml/ns/javaee"
xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation= "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
version= "1.2" >
<managed-bean>
<managed-bean-name> cadastroMapas</managed-bean-name>
<managed-bean-class>
br.projeto.faces.CadastroMapas
</managed-bean-class>
<managed-bean-scope> session</managed-bean-scope>
</managed-bean>
</faces-config>
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version= "2.5" xmlns= "http://java.sun.com/xml/ns/javaee"
xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation= "http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >
<description> Projeto Final</description>
<context-param>
<param-name> org.richfaces.SKIN</param-name>
<param-value> blueSky</param-value>
</context-param>
<filter>
<display-name> RichFaces Filter</display-name>
<filter-name> richfaces</filter-name>
<filter-class> org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name> richfaces</filter-name>
<servlet-name> Faces Servlet</servlet-name>
<dispatcher> REQUEST</dispatcher>
<dispatcher> FORWARD</dispatcher>
<dispatcher> INCLUDE</dispatcher>
</filter-mapping>
<filter>
<filter-name> MyFaces</filter-name>
<filter-class>
org.apache.myfaces.webapp.filter.ExtensionsFilter
</filter-class>
<init-param>
<param-name> maxFileSize</param-name>
<param-value> 20m</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name> MyFaces</filter-name>
<servlet-name> Faces Servlet</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name> MyFaces</filter-name>
<url-pattern> /faces/myFacesExtensionResource/*</url-pattern>
</filter-mapping>
<context-param>
<param-name> com.sun.faces.verifyObjects</param-name>
<param-value> false</param-value>
</context-param>
<context-param>
<param-name> com.sun.faces.validateXml</param-name>
<param-value> true</param-value>
</context-param>
<context-param>
<param-name> javax.faces.application.CONFIG_FILES</param-name>
<param-value></param-value>
</context-param>
<context-param>
<param-name> javax.faces.STATE_SAVING_METHOD</param-name>
<param-value> server</param-value>
</context-param>
<context-param>
<param-name> myfaces_allow_javascript</param-name>
<param-value> true</param-value>
</context-param>
<context-param>
<param-name> myfaces_pretty_html</param-name>
<param-value> true</param-value>
</context-param>
<!--
<listener>
<listener-class>
org.apache.myfaces.webapp.StartupServletContextListener
</listener-class>
</listener>
-->
<servlet>
<servlet-name> Faces Servlet</servlet-name>
<servlet-class> javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup> 1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name> Faces Servlet</servlet-name>
<url-pattern> *.jsf</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file> index.html</welcome-file>
</welcome-file-list>
<session-config>
<session-timeout> 30</session-timeout>
</session-config>
<login-config>
<auth-method> BASIC</auth-method>
</login-config>
</web-app>
antoniopopete 23 de abr. de 2008
jsp:
<% @ taglib uri = "http://richfaces.org/a4j" prefix = "a4j" %>
<% @ taglib uri = "http://richfaces.org/rich" prefix = "rich" %>
<% @ 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" %>
<f:view>
<html>
<head>
<meta http-equiv= "Content-Type" content= "text/html; charset=ISO-8859-1" >
<title> Cadastro de Mapas</title>
</head>
<body>
<t:selectOneMenu value= "#{cadastroMapaFaces.cursoModel.instituicaoModel.id}" required= "true" id= "instituicao" forceId= "true" >
<f:selectItem itemLabel= "Selecione" itemValue= "" />
<f:selectItems value= "#{cadastroMapaFaces.instituicoes}" />
<a4j:support event= "onchange" action= "#{cadastroMapaFaces.obterCursoInstituicao}" ajaxSingle= "true" reRender= "curso" immediate= "true" />
</t:selectOneMenu>
<br>
<br>
<t:selectOneMenu value= "#{cadastroMapaFaces.cursoModel.id}" required= "false" id= "curso" forceId= "true" >
<f:selectItem itemLabel= "Selecione" itemValue= "" />
<f:selectItems value= "#{cadastroMapaFaces.cursos}" />
</t:selectOneMenu>
</body>
</html>
</f:view>
antoniopopete 23 de abr. de 2008
Caso alguém tenha esse problema.
A questão foi porque o atributo que seria o valor do componente #{cadastroMapaFaces.cursoModel.instituicaoModel.id}
não estava instanciado…
Que mole…E que mals isso do jsf,ele deveria instanciar isso para nós…