Bom dia pessoal.
Estou há alguns dias procurando por uma resposta na internet, mas ainda não achei. Procurei aqui no fórum do GUJ e não encontrei. Portanto, caso meu tópico seja repetido, já peço desculpas antecipadamente.
Estou tentando utilizar a tag f:ajax para implementar ações assíncronas nas minhas páginas, porém está ocorrendo um probleminha. Ao renderizar a tag, o elemento da tela ( no caso, um ) tem adicionado ao evento que eu escolhi uma chamada JS. Porém, esta chamada não está sendo importada em nenhum lugar e eu não sei mais como fazer para solucionar isto.
Abaixo seguem os trechos de código:
Página xHTML:
[code]
<h:head>
<title>TituloExemplo</title>
</h:head>
<h:body>
<h:form id="contact">
<h:panelGroup>
<h:selectOneMenu
value="#{SuspensaoTemporariaAction.form.telefoneSelecionado}"
id="comboTelefones">
<f:ajax event="change" execute="@form" render="teste"
listener="#{SuspensaoTemporariaAction.testeAjax}" />
<f:selectItems
value="#{SuspensaoTemporariaAction.form.listaTelefone}"
var="telefone" itemLabel="#{telefone.numeroTelefone}"
itemValue="#{telefone.codigoContrato}" />
</h:selectOneMenu>
<h:outputText id="teste"/>
</h:panelGroup>
</h:form>
</h:body>
[/code]
Managed Bean
[code]@ManagedBean(name = “SuspensaoTemporariaAction”)
public class SuspensaoTemporariaAction extends BaseAction implements Serializable {
private static final long serialVersionUID = 1L;
private SuspensaoTemporariaForm form = new SuspensaoTemporariaForm();
@EJB
private transient IContrato contratoService;
public String inicializarPagina() {
form.setListaTelefone(contratoService.pesquisaTelefonesContaMaster());
HttpSession session = getSession();
session.setAttribute(ActionConstants.NUMERO_CONTRATO, "Teste Sessão");
return ActionConstants.RESPONSE_INICIALIZAR_PAGINA;
}
public void testeAjax(AjaxBehaviorEvent event){
System.out.println("testeAjax");
}
public SuspensaoTemporariaForm getForm() {
return form;
}
public void setForm(SuspensaoTemporariaForm form) {
this.form = form;
}
}[/code]
HTML Renderizado pelo Browser (apenas do Select):
<select id="contact:comboTelefones" name="contact:comboTelefones" size="1" onchange="mojarra.ab(this,event,'change','@form','contact:teste')"> <option value="0">1131751000</option>
<option value="1">1131751001</option>
<option value="2">1131751002</option>
<option value="3">1131751003</option>
<option value="4">1131751004</option>
<option value="5">1131751005</option>
<option value="6">1131751006</option>
<option value="7">1131751007</option>
<option value="8">1131751008</option>
<option value="9">1131751009</option>
</select>
Erro JS:
Uncaught ReferenceError: mojarra is not defined
(anonymous function)Login.xhtml:7
onchange
Valeu Pessoal!