Rich faces + Spring

12 respostas
E

Pessoal, toda vez que eu coloco qualquer coisa do Rich Faces usando o Spring ele não funciona, lança a exception abaixo:

WARNING: executePhase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@fa930d) threw exception
javax.faces.FacesException: Resources framework is not initialised, check web.xml for Filter configuration
(mais um monte de coisa relacionada a esse erro)

pergunta: tem alguma coisa que eu precise fazer pra usar o rich faces com spring?
tenho uma pagininha aqui que é um menu, feita com rich faces, em outra aplicação que não tem Spring rola normal, mas quando eu dou um jsp:include nesse cara dá essa maldita exception.

agradeço desde ja a colaboração.

12 Respostas

wagner_a_lima

Como está o seu web.xml?

E
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>planejasp</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext*.xml</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<listener>
		<listener-class>org.springframework.web.context.request.RequestContextListener</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>/faces/*</url-pattern>
		<url-pattern>*.edu</url-pattern>
	</servlet-mapping>
	<filter>
		<filter-name>springSecurityFilterChain</filter-name>
		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>springSecurityFilterChain</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
</web-app>
wagner_a_lima

Acredito que esteja faltando isso:

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

<!--#####INICIO UTILIZANDO FACELETS######-->
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
<param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>
<!--/#####FIM UTILIZANDO FACELETS######-->
wagner_a_lima

Acredito que esteja faltando isso:

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


<!--#####UTILIZANDO FACELETS######-->

<context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
</context-param>

<context-param>
        <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
        <param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>
E

Cara valeu mesmo, era exatamente isso que tava faltando.

muito obrigado mesmo.

E

cara, aproveitando o topico, tenho um rich:dropDownMenu, não sei como faço pra abrir uma outra pagina atravez de um item do menu, alguem pode me dar uma ajuda ?

<rich:menuItem submitMode="ajax" value="New">
                          // como faço pra abrir uma outra pagina com esse menuItem ?
                </rich:menuItem>

vlw

E

consegui, criei uma function javascript para redirecionar e coloquei o codigo no onclick do menu.

valeu a força

wagner_a_lima

Tenta ai.

<rich:menuItem submitMode="none" value="JBoss">
          <h:outputLink value="http://www.jboss.org"/>
</rich:menuItem>
Kleber-rr
wagner_a_lima:
Tenta ai.
<rich:menuItem submitMode="none" value="JBoss">
          <h:outputLink value="http://www.jboss.org"/>
</rich:menuItem>
Olá Wagner, td bem??

Estou com um probleminha aqui. Tenho um template e estou tentando abrir o menu.xhtml que contem o código rich: de um dropdownmenu, mas ele naum aparece de jeito nenhum...

template:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:stella="http://stella.caelum.com.br/faces"
	xmlns:rich="http://richfaces.org/rich">

<head>
	<link rel="StyleSheet" type="text/css" href="/jsf/style/estilos.css" media="screen" />
	<script type="text/javascript" src="/jsf/resources/jquery.maskedinput-1.2.1.js"></script>
	
	<title>
		<ui:insert name="pageTitle">
			<h:outputText value="CRUD Facelets "/>
		</ui:insert>
	</title>
</head>

<body>
	<div id="topo">
		<ui:insert name="topo">
			Topo do CRUD Facelets
		</ui:insert>
	</div>

	<div id="menu">
		<ui:insert name="menu">
			Menu Aqui!
		</ui:insert>
	</div>

	<div id="corpo">
		<ui:insert name="corpo">
			Conteúdo
		</ui:insert>
	</div>
	
	<div id="rodape"> 
		<ui:insert name="rodape">
			<hr/>
			Rodapé CRUD Facelets
		</ui:insert>
	</div>
</body>
</html>
o menu.xhtml;
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
    
    <ui:composition template="/template.xhtml">
		<ui:define name="menu">  
    <h:form>
    <rich:toolBar>

            <rich:dropDownMenu submitMode="ajax">
                <f:facet name="label"> 
                    <h:panelGroup>
                        <h:outputText value="Cadastro"/>
                    </h:panelGroup>
                </f:facet>
                <rich:menuItem submitMode="ajax" value="Funcionário">
                </rich:menuItem>
                <rich:menuItem submitMode="ajax" value="Órgão Gestor">
                </rich:menuItem>
                <rich:menuItem submitMode="ajax" value="Unidade">
                </rich:menuItem>
             </rich:dropDownMenu>

            <rich:dropDownMenu>
                <f:facet name="label"> 
                    <h:panelGroup>
                        <h:outputText value="Busca"/>
                    </h:panelGroup>
                </f:facet>
                <rich:menuItem submitMode="ajax" value="Funcionário">
                </rich:menuItem>
                <rich:menuItem submitMode="ajax" value="Órgão Gestor">
                </rich:menuItem>
                <rich:menuItem submitMode="ajax" value="Unidade">
                </rich:menuItem>
             </rich:dropDownMenu>
             <rich:dropDownMenu>
                <f:facet name="label"> 
                    <h:panelGroup>
                        <h:outputText value="Questionario"/>
                    </h:panelGroup>
                </f:facet>
                <rich:menuItem submitMode="ajax" value="Órgão Gestor">
                </rich:menuItem>
             </rich:dropDownMenu>
             <rich:dropDownMenu>
                <f:facet name="label"> 
                    <h:panelGroup>
                        <h:outputText value="Relatório"/>
                    </h:panelGroup>
                </f:facet>
                <rich:menuItem submitMode="ajax" value="Funcionário">
                </rich:menuItem>
                <rich:menuItem submitMode="ajax" value="Órgão Gestor">
                </rich:menuItem>
                <rich:menuItem submitMode="ajax" value="Unidade">
                </rich:menuItem>
             </rich:dropDownMenu>
             
             <rich:dropDownMenu>
                <f:facet name="label"> 
                    <h:panelGroup>
                        <h:outputText value="Administrador"/>
                    </h:panelGroup>
                </f:facet>
                <rich:menuItem submitMode="ajax" value="Cargo">
                </rich:menuItem>
                <rich:menuItem submitMode="ajax" value="Escolaridade">
                </rich:menuItem>
                <rich:menuItem submitMode="ajax" value="Perguntas">
                </rich:menuItem>
                   <rich:menuItem submitMode="ajax" value="Respostas">
                </rich:menuItem>
                   <rich:menuItem submitMode="ajax" value="Municípios">
                </rich:menuItem>
                   <rich:menuItem submitMode="ajax" value="Estados">
                </rich:menuItem>
                   <rich:menuItem submitMode="ajax" value="Niveis de Gestão">
                </rich:menuItem>
                   <rich:menuItem submitMode="ajax" value="Internet">
                </rich:menuItem>
                   <rich:menuItem submitMode="ajax" value="Programa">
                </rich:menuItem>
                   <rich:menuItem submitMode="ajax" value="Servico">
                </rich:menuItem>
                   <rich:menuItem submitMode="ajax" value="Modalidade">
                </rich:menuItem>
             </rich:dropDownMenu>
        </rich:toolBar>
       
    </h:form>
    <rich:spacer width="1" height="5"/>
    <br />
    <br />
    <rich:spacer width="1" height="25" />
</ui:define>
</ui:composition>
</html>
meu web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>crud_facelets</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
   <param-name>javax.faces.DEFAULT_SUFFIX </param-name>
   <param-value>.xhtml </param-value>
</context-param>
<context-param>
   <param-name>facelets.DEVELOPMENT </param-name>
   <param-value>true </param-value>
</context-param>
<context-param>
   <param-name>com.sun.faces.validateXml </param-name>
   <param-value>false </param-value>
</context-param>
   <context-param>
   <param-name>com.sun.faces.verifyObjects </param-name>
   <param-value>true </param-value>
</context-param>
  <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>
    <url-pattern>*.faces</url-pattern>
  </servlet-mapping>
  
  <context-param>
		<param-name>org.ajax4jsf.SKIN</param-name>
		<param-value>blueSky</param-value>
	</context-param>
	
	<!-- Ativando o Skin -->
    <context-param>
        <param-name>org.richfaces.CONTROL_SKINNING</param-name>
        <param-value>enable</param-value>
    </context-param>
<!-- Definindo e mapeando os filtros do RichFaces -->
    <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>
    <!-- Fim da configuracao do RIchFaces -->
	
	
	<filter>
		<display-name>Ajax4jsf Filter</display-name>
		<filter-name>ajax4jsf</filter-name>
		<filter-class>org.ajax4jsf.Filter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>ajax4jsf</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>INCLUDE</dispatcher>
	</filter-mapping>
	
	<filter>
	    <display-name>AuthFilter</display-name>
	    <filter-name>AuthFilter</filter-name>
	    <filter-class>br.com.serjaum.filtro.AuthFilter</filter-class>
    </filter>
    <filter-mapping>
	    <filter-name>AuthFilter</filter-name>
	    <url-pattern>/*</url-pattern>
    </filter-mapping>
	 
	 <context-param>
		<param-name>facelets.SKIP_COMMENTS</param-name>
		<param-value>true</param-value>
	</context-param>
</web-app>

Eae man, alguma sugestão???

Abs.

wagner_a_lima

Olá Kleber, tudo bem?

Só para confirmar, você adicionou os .jars do faceletes? (pode ser meio óbivio, mas as vezes nos esquecemos… :slight_smile: )

Se adicionou, é necessário adicionar o seguinte trecho de código no web.xml para integrar o facelets com o richfaces.

<context-param>
        <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
        <param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>

Testa ai, e posta o resultado. Até mais.

Kleber-rr

wagner_a_lima:
Olá Kleber, tudo bem?

Só para confirmar, você adicionou os .jars do faceletes? (pode ser meio óbivio, mas as vezes nos esquecemos… :slight_smile: )

Se adicionou, é necessário adicionar o seguinte trecho de código no web.xml para integrar o facelets com o richfaces.

<context-param>
        <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
        <param-value>com.sun.facelets.FaceletViewHandler</param-value>
</context-param>

Testa ai, e posta o resultado. Até mais.

Eae Wagner, blz?? Consegui resolver. Na verdade, estava faltando uma linha de código no meu menu. Até pra diminuir a quantidade de trabalho, acabei colocando o menu dentro do template :smiley:

Agradeço a ajuda man.

Flws

rjdiogo

Uma dúvida pessoal:

O no caso dessa combinação jsf + spring, o jsf sempre ficará responsável em ser o controller, enquanto o spring o trabalho dele é so fazer a injeção de dependências?

Criado 7 de agosto de 2009
Ultima resposta 21 de mai. de 2010
Respostas 12
Participantes 4