Opa…consegui fazer a popup no JSF, mas ela ta me trazendo a página errada…ela ta abrindo no fundo a mesma página que chamou…alguém pode me ajudar?
Este é o código que chama o javascript pelo botão
<jsp:root version="1.2" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://www.sun.com/web/ui">
<script language="javascript">
function teste(){
alert("mensagem de teste");
}
function abrirPopup(){
window.open('/InternetCreditWeb/simulacao/buscarTeste.jsp', '_blank', width='350', height='200');
}
var formId; // referencia pro form principal
var winId; // referencia para o popup
// Essa função chama o popup.
//
function showSearchList(action, form, target) {
formId=action.form.id;
features="height=640,width=480,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes";
winId=window.open('','busca',features); // open an empty window
uiform=document.forms[form]; // referencia para o hidden form
//Essa é uma emulação de ação do link sendo clicado.
//uiform[form+':'+target].value=form+':'+target;
// Copia o valor do segmento e do ano modelo
// para o campo correspondente no hidden form.
uiform[form+":segmento"].value = getSegmentoSelect(action.form);
uiform[form+":anoModelo"].value = getAnoModeloTextField(action.form);
alert(uiform[form+":anoModelo"].value);
// Submita o hidden form. A saída será enviada na popup.
uiform.submit();
}
// Essa funcao é chamada através da popup quando o usuário
// seleciona o plano da tabela.
// O valor escolhido é copiado para o "planoTextField"
// no form principal.
//
function updatePlano(plano) {
form=document.forms[formId];
form[formId+":planoTextField"].value=plano;
winId.close();
}
// Essa funcão retorna o valor selecionado
// do segmento.
//
function getSegmentoSelect (form) {
field = form[form.id+":segmentoSelect"];
return field.value;
}
// Essa funcão retorna o valor selecionado
// do ano modelo.
//
function getAnoModeloTextField (form) {
field = form[form.id+":anoModeloTextField"];
return field.value;
}
// Essa função limpa o campo "planoTextField".
//
function resetTextField(form, field) {
fieldName=form.id+":"+field;
form[fieldName].value="";
}
</script>
<ui:button action="buscarPlano" immediate="true" onClick="return false" onMouseDown="showSearchList(this,'segmento','busca')" binding="#{simulacao$Simulacao.buscarPlanoBotao}" id="buscarPlanoBotao"
styleClass="btoes" text="Buscar Plano" />
<ui:form id="segmento" target="busca">
<ui:hiddenField id="segmento" value="#{simulacao$Simulacao.segmentoSelect}" ></ui:hiddenField>
<ui:hiddenField id="anoModelo" value="#{simulacao$Simulacao.anoModeloTextField}"></ui:hiddenField>
<ui:hyperlink action="buscarPlano" id="busca" text="">
<f:verbatim></f:verbatim>
</ui:hyperlink>
</ui:form>
essa é a tela que deveria ser aberta
<?xml version="1.0" encoding="UTF-8"?>
<jsp:root version="1.2" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://www.sun.com/web/ui">
<script type="text/javascript">
function update(plano) {
window.opener.updatePlano(plano);
}
</script>
<jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
<f:view>
<ui:page binding="#{simulacao$buscarPlano.page1}" id="page1">
<ui:html binding="#{simulacao$buscarPlano.html1}" id="html1">
<ui:head binding="#{simulacao$buscarPlano.head1}" id="head1">
<ui:link binding="#{simulacao$buscarPlano.link1}" id="link1" url="/resources/stylesheet.css"/>
</ui:head>
<ui:body binding="#{simulacao$buscarPlano.body1}" id="body1" style="-rave-layout: grid">
<ui:form binding="#{simulacao$buscarPlano.form1}" id="form1">
<h:dataTable binding="#{simulacao$buscarPlano.dataTable1}" headerClass="list-header" id="dataTable1"
rowClasses="list-row-even,list-row-odd" style="left: 144px; top: 48px; position: absolute"
value="#{simulacao$buscarPlano.dataTable1Model}" var="currentRow">
<h:column binding="#{simulacao$buscarPlano.column1}" id="column1">
<h:outputText binding="#{simulacao$buscarPlano.outputText1}" id="outputText1" value="#{currentRow['COLUMN1']}"/>
<f:facet name="header">
<h:outputText binding="#{simulacao$buscarPlano.outputText2}" id="outputText2" value="coluna1"/>
</f:facet>
<ui:radioButton binding="#{simulacao$buscarPlano.radioButton1}" id="radioButton1" onMouseDown="update(this.name)" label="Botão de opção" name="radioButton-group-column1"/>
</h:column>
<h:column binding="#{simulacao$buscarPlano.column2}" id="column2">
<h:outputText binding="#{simulacao$buscarPlano.outputText3}" id="outputText3" value="#{currentRow['COLUMN2']}"/>
<f:facet name="header">
<h:outputText binding="#{simulacao$buscarPlano.outputText4}" id="outputText4" value="coluna2"/>
</f:facet>
</h:column>
<h:column binding="#{simulacao$buscarPlano.column3}" id="column3">
<h:outputText binding="#{simulacao$buscarPlano.outputText5}" id="outputText5" value="#{currentRow['COLUMN3']}"/>
<f:facet name="header">
<h:outputText binding="#{simulacao$buscarPlano.outputText6}" id="outputText6" value="coluna3"/>
</f:facet>
</h:column>
</h:dataTable>
</ui:form>
</ui:body>
</ui:html>
</ui:page>
</f:view>
</jsp:root>