Erro ao exibir componentes do Primefaces em uma página JSP

13 respostas
L

Olá, Fórum!

Estou com problemas ao exibir os componentes do Framework Primefaces em uma página JSP. Já adicionei as taglibs necessárias para utilizar JSF (que é um requisito para se utilizar o Primefaces) e o Primefaces, além das libs de ambos. Mas o resultado, ao carregar a minha JSP, vem sempre com aquela mensagem do navegador: "Concluído, mas contêm erros na página". E de fato tem. Exemplo: quando eu add o componente Calendar na minha jsp, o que era esperado que eu recebesse como resposta seria uma caixa de texto, aonde, ao clicar, eu visualizasse o calendário. Mas a única coisa que eu vejo é a caixa de texto. Não é permitida nenhuma ação com esta.

Alguém pode me ajudar a descobrir o que pode estar acontecendo? Abaixo segue o código da minha JSP.

Minha JSP:
<%-- 
    Document   : hello
    Created on : 18/03/2011, 09:52:46
    Author     : Luiza
--%>

<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@taglib uri="http://primefaces.prime.com.tr/ui" prefix="p" %>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <f:view>
            <h:panelGrid>
                <p:resources/>
                <p:calendar/>
            </h:panelGrid>
        </f:view>

    </body>
</html>
Meu XML:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</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>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <servlet>
        <servlet-name>Resource Servlet</servlet-name>
        <servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Resource Servlet</servlet-name>
        <url-pattern>/primefaces_resource/*</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>faces/hello.jsp</welcome-file>
    </welcome-file-list>
</web-app>

Obrigada!

13 Respostas

G

tenta colocar aquele panelGrid dentro de um form e o resources no h:head

<h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
                <p:resources/>
    </h:head>
    <body>
        <f:view>
        <h:form>
            <h:panelGrid>
                <p:calendar/>
            </h:panelGrid>
       </h:form>        
       </f:view>
    </body>

ps: nem sei se precisa do view.

L

Ele não me deixa usar <h:head>!

Será que não é algo relacionado à compatibilidade do JSF 2 com JSP? Eu li isso em alguns fóruns, mas não encontrei nenhuma solução para tal problema!

G

então tenta do jeito que te falei mas deixa como head mesmo, o que acontece?

L

HTTP 500 - Erro Interno no Servidor

O site não pode exibir a página
HTTP 500
Causas prováveis:
?O site está em manutenção.
?O site tem um erro de programação.

Deu erro!

G

Vamos por parte, cria um projeto novo, adiciona as libs do primefaces e suas tags no xml, executa o projeto para ver se não deu erro, depois coloca o resources e um <p:editor />

L

Tudo dentro do body né???O resources não fica no head não né?

G

eu deixo o meu resources dentro do head!!!

L

Bom, fiz os testes…Criei um projeto novo, adicionei as libs e as tags necessárias e criei minha JSP.

Descobri o seguinte:

  • A tag resources dentro do head da erro (HTTP 500)
  • A tag resources dentro do body mais a tag editor dentro do body, sem nenhuma outra tag JSF também da o mesmo erro acima

Esse erro não é resolvido se eu não colocar tudo dentro de uma <f:view>

Eu consigo visualizar minha JSP de novo agora, mas o componente do Primefaces ainda não foi carregado!

G

Fiz o mesmo processo e tive uns problemas também!!! no final ficou desse jeito:

Ao criar o projeto no 4º e ultimo passo eu marquei que vou usar JavaServer Faces.

Adicionei a biblioteca do primeFaces, para esse caso usei a versão 1.0.2 junto com o poi-3.2-FINAL.jar (não me lembro porque uso esse jar mas sempre o coloco :oops: ).

Depois configurei o web.xml assim:

<?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">
<context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</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>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <servlet>
        <servlet-name>Resource Servlet</servlet-name>
        <servlet-class>org.primefaces.resource.ResourceServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Resource Servlet</servlet-name>
        <url-pattern>/primefaces_resource/*</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>faces/welcomeJSF.jsp</welcome-file>
    </welcome-file-list>
</web-app>

E por ultimo a pagina ficou assim:

<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@taglib prefix="p" uri="http://primefaces.prime.com.tr/ui"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
            <title>JSP Page</title>
            <p:resources/>
        </head>
        <body>
            <h1><h:outputText value="JavaServer Faces"/></h1>
            <h:form>
                <h:panelGrid>
                    <p:calendar/>
                </h:panelGrid>
            </h:form>
        </body>
    </html>
</f:view>

Tente fazer o mesmo e me diga se deu certo!!!

L

Aonde eu encontro a versão 1.0.2 do primefaces para fazer o download?? Estou procurando ela e até agora não encontreei!!!

Obrigada!!!

G

Qual você esta usando?

L

Eu estou usando a versão 2.0…mas sem sucesso…Li que essa versão só é suportada pelo JSF 2, que, adicionalmente, não é compatível com JSP. Para isso eu precisaria usar o JSF1.2 com alguma versão 1.x (de preferência a 1.1) do primefaces…mas não encontrei nenhuma versão 1.x para baixar…

G

Olhá aqui você encontra o que quer:
http://repository.prime.com.tr/org/primefaces/primefaces/

mas não seria melhor iniciar em jsf 2.0 logo não? eu vou fazer agora com ela para ver como é, te falo mais tarde

Criado 24 de março de 2011
Ultima resposta 24 de mar. de 2011
Respostas 13
Participantes 2