Me encuentro con un problema extraño al usar myfaces que me está volviendo loco. Probé las versiones 2.2.10 y 2.2.12. También uso Primefaces 6.0, pero eso podría no ser relevante.
Cada vez que incluyo una etiqueta f:ajax en una página, commandLink ya no funciona y aparece un error en la consola de JavaScript:
ReferenceError: myfaces is not definedProfundizando más, resulta que la siguiente línea ya no se genera cuando hay una etiqueta af:ajax en la página:
<script type="text/javascript" src="/console/javax.faces.resource/oamSubmit.js.jsf?ln=org.apache.myfaces"></script>Cuando agrego manualmente esta línea de script, ¡todo vuelve a funcionar! Hago esto agregando el siguiente javascript justo después de la etiqueta:
<script> if (!window.myfaces) { document.write(unescape('%3Cscript type="text/javascript" src="/console/javax.faces.resource/oamSubmit.js.jsf?ln=org.apache.myfaces"%3E%3C/script%3E')); } </script>Aunque todo parece estar funcionando bien con este truco, me da una sensación incómoda de tener que hacer esto. ¿Alguien puede arrojar una luz sobre la causa de este problema?
Mismo problema aquí. Me topé con que mojarra no está definido cuando javax.faces.PROJECT_STAGE es Production y submitForm() no está definido para myfaces.JSF_JS_MODE 'minimal-modern' y descubrí que el problema solo está presente en javax.faces.PROJECT_STAGE=Production.
agregando
<context-param> <param-name>org.apache.myfaces.JSF_JS_MODE</param-name> <param-value>minimal</param-value> </context-param>a la web.xml me solucionó el problema.