Estoy utilizando PrimeFaces 3.5 y JSF 2.0. Yo quería usar un plugin de jQuery, así que he incluido jQuery en mi webapp.

<h:head>
    <h:outputScript name="js/jquery.min.js" />
    <h:outputScript name="js/jquery-ui.js" />
</h:head>

Sin embargo, cuando el uso de los componentes de PrimeFaces, recibo de dicho tipo de errores como este:

Uncaught TypeError: No se puede leer la propiedad «longitud» undefined

Uncaught TypeError: Object [object object] no tiene ningún método ‘autocompletar’

Uncaught TypeError: No se puede leer la propiedad ‘el código de la tecla’ undefined

Uncaught TypeError: este.jq.la posibilidad de arrastrar no es una función

Uncaught TypeError: No se puede leer la propiedad ‘LinearAxisRenderer’ undefined

Uncaught TypeError: Object [object object] no tiene ningún método ‘fileupload’

Uncaught TypeError: este.jqEl.datetimepicker no es una función

Etc.

Cómo es esto causó y cómo puedo solucionarlo?

¿Añadido <filtro> y <filter-mapping> etiquetas para su web.xml? Como here?
sí, no hay ningún problema con el fileupload función. la carga de archivos funciona como un encanto, el único problema es que me da un typeerror para jquery y este me da problemas con mi otra de las funciones de jquery.
Sólo uno más, supongo, tal vez usted está tratando de incluir la librería de jquery y se puede entrar en conflicto con PF jquery.
hola, sí he incluido una versión superior de jquery.js debido a que actualmente estoy usando una biblioteca tag-it de referencia: github.com/aehlke/tag-it. porque si no, la enfermedad consigue un Uncaught TypeError: Object [object Object] has no method 'autocomplete' tag-it.js:294
Entonces usted debe tratar de $.noConflict(true); como aquí

OriginalEl autor galao | 2013-04-23

1 Comentario

  1. 20

    PrimeFaces es una de jQuery basado en JSF de la biblioteca de componentes. Es ya barcos con jQuery y jQuery UI » fuera de la caja. No es justo cargar manualmente otra copia de jQuery/jQuery UI por alguna razón. Diferentes versiones de jQuery archivos solo con el conflicto entre sí de esta manera, debido a que no necesariamente utilizan/comparten exactamente las mismas variables/funciones.

    Deshacerse de todas esas manualmente cargado jQuery/interfaz de usuario de archivos. Esto no tiene sentido.

    Si hizo esto debido a que usted necesita para utilizar algunos de jQuery/interfaz de usuario de la magia en alguna página que no necesariamente el uso de cualquiera de los componentes de PrimeFaces (y por lo tanto el paquete de jQuery no se auto-incluido y por lo tanto $() sería no disponible), entonces siempre se puede manualmente incluir explícitamente PrimeFaces-paquete de jQuery en algunos plantilla maestra de la siguiente manera:

    <h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />
    <h:outputScript library="primefaces" name="jquery/jquery-plugins.js" target="head" />

    (el target="head" es innecesario si se especifica directamente en el interior de <h:head>)


    Si es absolutamente necesario para el suministro de su propia versión de jQuery, porque el uno incluido en PrimeFaces es obsoleta, entonces usted tiene 2 opciones:

    • Deje que su webapp de suministro de su propia exactamente el mismo identificador de recursos (biblioteca/nombre) /resources/primefaces/jquery/jquery.js (no cambiar la ruta de acceso ni de nombre de archivo!). Esto luego de ser elegido en lugar de la PrimeFaces-incluido uno.

    • Desempaquetar primefaces.jar, reemplazar /META-INF/resources/primefaces/jquery/jquery.js archivo con la versión más reciente (no cambiar la ruta de acceso ni de nombre de archivo!), repack un nuevo primefaces.jar.

    (y no se olvide de retirar todos aquellos <h:outputScript> referencias a la propia copia)

    Prueba sin embargo thorougly. Algunos PrimeFaces la funcionalidad específica puede romper con la actualización debido a pequeños cambios/correcciones de errores en la más reciente versión de jQuery como en comparación con el PrimeFaces-incluido uno.

    Por encima de todo, usted debe estar absolutamente seguro de que usted no proporcionar múltiples copias de jQuery/interfaz de usuario, o que tendrá que enfrentarse a conflictos y enfrentamientos como en la actualidad. El uso de $.noConflict() como algunas personas pueden sugerir es absolutamente no pretenden ser capaz de utilizar múltiples bibliotecas jQuery juntos. Está pensado para ser capaz de utilizar jQuery junto con otro JS biblioteca, que casualmente también se utiliza $() como función global, tales como Prototipo. Ver también.o. Jquery y prototype noconflict.

    hola, sí he incluido una versión superior de jquery.js debido a que actualmente estoy usando una biblioteca tag-it de referencia: github.com/aehlke/tag-it. porque si no, la enfermedad consigue un Uncaught TypeError: Object [object Object] has no method 'autocomplete' tag-it.js:294
    De nuevo, no la oferta de la otra copia de jQuery. En su lugar, actualizar o reemplazar el PrimeFaces-que se suministra.
    hizo la opción 1 y funcionó! gracias!!
    Eres bienvenido.

    OriginalEl autor BalusC

Dejar respuesta

Please enter your comment!
Please enter your name here