JSF 1.2 + richfaces 3.2

9 respostas
antoniopopete

Além da nova versão do jsp/servlet e de rodar nativamente no jboss 4.2 que já traz a versão RI que pelo que entendi dispensa a utilização do myfaces 1.2.2, mas permitindo usar o tomahawk 1.6.
O que mais preciso para utilizar jsf 1.2 no jboss 4.2.2?
Eu coloquei meu aplicativo lá e não funcionou ainda, porque tenho selectOneMenu que ele só estoura nullpointer, mesmo quando eu instancio no construtor.

p.s. - desculpa pela mensagem trocada…

9 Respostas

Luiz_Aguiar

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

Cara da uma olhada neste post q deve te ajudar

antoniopopete

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

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

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

posta seu mbean para dar uma olhada

antoniopopete
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
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

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…

Criado 22 de abril de 2008
Ultima resposta 23 de abr. de 2008
Respostas 9
Participantes 3