2012-04-02 7 views
9

Hola tengo un nuevo proyecto simple basado en MyFaces 2.0.11 con Primefaces 3.0 en Tomcat 6¿Qué puede causar "JSF no está definido" error en la consola del navegador

Cuando estoy tratando de navegar a una página que Estoy obteniendo el error Uncaught ReferenceError: jsf is not defined que me dirige a una referencia en mi código js jsf.ajax.addOnEvent ... (lo cual es razonable porque estoy tratando de usar el jsf.js y no es un evento presente Soy mi página ...)

Y si veo fuente de mi página no incluyo el archivo jsf.js

Ahora si lo agrego manualmente así

<h:outputScript name="jsf.js" library="javax.faces" target="head"/>

cada cosa funciona bien ... pero prefiero no incluir de forma manual, en lugar me gustaría saber cuáles son las razones que pueden causar la falta de los jsf.js en mi página

I google durante un tiempo y ninguno de los caso similar representa mina de

tengo <h:head> y <h:body> Mi página es muy simple ...

alguna idea?

+0

Si tiene una h: cabeza en su página, la secuencia de comandos * debe * estar allí. Verifique si no se omite de alguna manera poniendo, por ejemplo, un título dentro de él. –

+0

Título agregado ... el título se muestra correctamente pero el jsf.js aún no se está agregando ... – Daniel

Respuesta

7

Este script solo se incluirá automáticamente cada vez que utilice <f:ajax> en la vista. Si no lo haces, entonces no se incluirá automáticamente.

simplemente añada una comprobación adicional antes de llamar jsf.ajax.addOnEvent:

if (typeof jsf !== 'undefined') { 
    jsf.ajax.addOnEvent(someFunctionName); 
} 

O, incluye explícitamente la biblioteca por <h:outputScript> sobre el correcto library, al igual que como ya lo hizo.

+0

¡Funciona como un encanto! y tiene sentido :) ¡Gracias! – Daniel

+0

@BalusC Usé este método para tratar de eludir el mismo error, fue en vano. Sigo recibiendo el mismo mensaje, y he confirmado que el script está formado correctamente en el cliente con este control. – Stephan

Cuestiones relacionadas