Dúvida com varias paginas JSF [RESOLVIDO]

18 respostas
S

Bom dia pessoal!

Eh o seguinte…

Eu tenho uma pagina inicial que tem uma div no centro onde carrega varias paginas dentro dela…

Mas a index eh .jsp e as que vao ser carregadas nela tmbm sao .jsp…

e todas as paginas q eu carrego na index eu nao consigo por tags jsf…

alguem sabe porque?

Desde já agradeço!

18 Respostas

P

Coloca o codigo do seu index.jsp ai

S
<%@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"%>

<!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>Condom&iacute;nio Local - Administradora</title>

            <!-- JQUERY -->
            <script src="./javascript/jquery-1.4.2.js" type="text/javascript"></script>
            <script src="./javascript/jquery-ui-1.8.5.custom.js" type="text/javascript"></script>

            <!-- JAVASCRIPT -->
            <script src="./javascript/principal.js" type="text/javascript"></script>
            <script src="./javascript/cadastrosAdm.js" type="text/javascript"></script>
            <script src="./ui/jquery.ui.tooltip.js" type="text/javascript"></script>
            <script src="./ui/jquery.ui.overlay.js" type="text/javascript"></script>

            <!-- STYLESHEET -->
            <link href="./stylesheets/principal.css" rel="stylesheet" type="text/css" />
            <link href="./stylesheets/divs.css" rel="stylesheet" type="text/css" />
            <link href="./stylesheets/formularios.css" rel="stylesheet" type="text/css" />
            <link href="./stylesheets/grid.css" rel="stylesheet" type="text/css" />

            <!-- THEME -->
            <link href="./themes/tema_condominio/jquery.ui.all.css" type="text/css" rel="stylesheet" />

            <script type="text/javascript">
                $(document).ready(function(){
                    //INICIANDO COMPONENTES DO JQUERY
                    $('#tabs').tabs();

                    $('[title]').tooltip({ effect: 'slide', offset: [60, -20] });

                    //BOTAO LOGOFF
                    $('#logoff').button({ icons: {primary: 'ui-icon-power'} });

                    $('#logoff').click(function(){
                        showDialog('Esta opera&ccedil;&atilde;o n&atilde;o est&aacute; funcionando.', 'Alerta', 'alert');
                    });

                    //CARREGANDO PAGINA INICIAL NA DIV
                    $('#conteudo').load('view/administradora/abaCadastros.jsp');
                });
            </script>
        </head>
        <body>
            <center>
                <div id="borda_top">
                </div>

                <!-- CONTEUDO DO SITE -->
                <div id="corpo">
                    <!-- CABECALHO DE BOAS VINDAS -->
                    <div id="bem_vindo">
                        <h:outputText value="Bem vindo"/>
                        <b><h:outputText value="#{usuario.nome}"/></b>

                        <h:outputText id="logoff" style="font-size: 9px; margin-top: -3px; float: right;" title="Sair do sistema" value="Logoff"/>
                    </div>

                    <!-- IMAGEM DO CONDOMINIO -->
                    <div id="logo_condominio">
                    </div>

                    <!-- ABAS DO SISTEMA -->
                    <div id="tabs">
                        <ul style="height: 29.9px; padding-left: 6px;">
                            <li style="cursor:pointer;">
                                <a href="conteudo" onclick="abrirPagina('view/administradora/abaCadastros.jsp', 'conteudo');" title="Cadastros">
                                    <h:outputText style="cursor: pointer;" value="Cadastros"/>
                                </a>
                            </li>
                        </ul>

                        <div id="conteudo">
                        </div>
                    </div>

                    <!-- RODAPE -->
                    <div id="rodape">
                        <h:outputLink value="http://uniup.com.br" target="a_blank" style="color: #CCAA33; font-weight: bold;">
                            <f:verbatim>
                                Uniup Group
                            </f:verbatim>
                        </h:outputLink>
                    </div>
                </div>

                <div id="borda_bottom">
                </div>
            </center>
        </body>
    </html>
</f:view>
P

Você chama a pagina e quando ela aparece as tags jsf dela nao funciona?

S

tem uma tag que esta na pagina q eu chamo que eh jsf:

<h: outputText value=“Teste” />

e nao aparece o texto…tudo que for tag jsf nao aparece…

P

estas tags estao dentro do <h:form>?
apesar que o <h:form> e necessario so quando vc usa algum input mas as vezes pode ser

S

nao tem nenhum form…mas a tah outputtext nao precisa disso…
kk

N

Ei mano… como vc declarou a extensão das suas paginas no web.xml?

Ta como *.jsf?

Se estiver mude seus links que estão aí na index de .jsp para .jsf (ou a extenção que estiver no web.xml).

S

nao eh esse o problemaa…

o problema eh q a index tem uma <f:view> e as subpaginas tmbm temm…eu acho q o problema eh esse…

nao seria isso?

N

Ah, e verdade, não tinha reparado que vc coloca com subpagina, pensei que abria a pagina em outra janela :smiley:

no caso na sua subpagina não use

<f:view>

use

<f:subview>

:wink:

S

ahhh tahh…

mas a tag subview pede um id como atributo necessario…
qual id que eu passo?

N

Esse id é um alías qualquer, vc pode colocar qualquer coisa, é utilizado quando vc quiser referenciar qualquer coisa a esse id depois, (como se fosse o id da tag

)

e pra incluir , normalmente com o <jsp:include page=“pagina.jsp” />

S

eu tentei com subview mas nao deu certo :S…
eu tenho q por a subview na pagina que ira ser carregada?

e no caso, eu carrego a pagina usando o comando $(‘minha_div’).load(‘minha_pagina’);…

N

Como ficou sua pagina principal e sua subpagina?

S

imagine que eu tenha uma index.xhtml:

<f:view>


</f:view>

se eu tentar carregar uma pagina jsf “normal” dentro da div nao vai dar certo…todos as tags com jsf nao terao “efeito”…

Como eu faço pra colocar uma pagina jsf dentro da outra???

J

desculpa se eu tiver falando besteira…

mas e se vc usar facelets???

usar akelas tags ui:insert, e dentro delas jogas as paginas jsf???

será q resolve?

S

eu fiz um pequeno exemplo para tentar mostrar o problema:

criei 2 paginas .xhml…

teste1.xhtml

<?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:h="http://java.sun.com/jsf/html">
    <head>
        <title>Teste</title>

        <!-- JQUERY -->
        <script src="./javascript/jquery-1.4.2.js" type="text/javascript"></script>
        <script src="./javascript/jquery-ui-1.8.5.custom.js" type="text/javascript"></script>

        <script type="text/javascript">
            $(document).ready(function(){
                $("#carrega").load("./view/teste2.xhtml");
            });
        </script>
    </head>
    <body>
        Teste:
        <div id="carrega">
            
        </div>
    </body>
</html>

teste2.xhtml

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:body>
        <f:view>
            <h:form id="dasda">
                <h:outputText>
                    <f:verbatim>
                        Teste
                    </f:verbatim>
                </h:outputText>
                <h:inputTextarea id="textArea" rows="4" cols="7" value="Text goes here.."/>
            </h:form>
        </f:view>
    </h:body>
</html>

nesse exemplo ele consegue carregar a pagina na div, mas só a tag outoutText funciona…jah tentei outras como inputText e a inputTextArea e nao deu certo…ele nao mostra nada na tela…

fiz um outro exemplo mas com as paginas com extensao .jsp…

teste1.jsp

<%@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"%>

<!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>Teste</title>

            <!-- JQUERY -->
            <script src="./javascript/jquery-1.4.2.js" type="text/javascript"></script>
            <script src="./javascript/jquery-ui-1.8.5.custom.js" type="text/javascript"></script>

            <script type="text/javascript">
                $(document).ready(function(){
                    $("#carrega").load("./view/teste2.jsp");
                });
            </script>
        </head>
        <body>
            <h3><h:outputText value="Hello World!"/></h3>
            <div id="carrega">

            </div>
        </body>
    </html>
</f:view>

teste2.jsp

<%@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"%>

<html>
    <body>
        <h:outputText>
            <f:verbatim>
                Teste 2
            </f:verbatim>
        </h:outputText>
    </body>
</html>

nesse exemplo a pagina tambem carrega mas nao carrega nenhuma tag jsf…

S

no caso se eu tentar carregar a pagina com o codigo:

<jsp:include page=“minha_pagina.xhtml”>

eu preciso criar o prefix da tag la em cima da pagina?
Qual é esse prefix?

S

consegui resolver…as paginas tem que ter extensao .jsp e pra dar o include eh soh usar o codigo <jsp:include page=… />

e na pagina que ira ser carregada deve ter um subview…

Vlw pela ajuda galera!

Criado 19 de novembro de 2010
Ultima resposta 24 de nov. de 2010
Respostas 18
Participantes 4