2012-02-01 21 views
15

Quiero usar el complemento jQuery Validate con JSF para la validación del formulario del lado del cliente. Estoy encontrando dificultad básica para importar los recursos.Cómo incluir archivos JavaScript por h: ¿outputScript?

En mi página JSF que tienen

<h:outputScript library="js" name="jquery-1.6.2.js"></h:outputScript> 
<h:outputScript library="js" name="jquery.validate.js"></h:outputScript> 
<h:outputScript library="js" name="jquery.maskedinput.js"></h:outputScript> 
<h:outputScript library="js" name="myapp.validate.js"></h:outputScript> 

Cuando hago clic en la pestaña de script en el Firefox, no puedo ver los archivos de secuencia de comandos en el menú desplegable. Hay un mensaje que se muestra:

Si las etiquetas tienen un atributo "tipo", debe ser igual a "texto/javascript" o "aplicación/javascript". También las secuencias de comandos deben ser analizables (sintácticamente correctas).

Además de mi efecto jquery como el mouse hover, hide, show etc no funcionan. Intenté con las etiquetas de secuencia de comandos habituales

<script type="text/javascript" src="../js/jquery-1.6.2.js"></script> 
<script type="text/javascript" src="../js/jquery.validate.js"></script> 
<script type="text/javascript" src="../js/jquery.maskedinput.js"></script> 
<script type="text/javascript" src="../js/myapp.validate.js"></script> 

que no servía de nada. Todavía no fue capaz de localizar mis archivos JS. Todos mis archivos JS se colocan debajo de

Web pages 
     |_ js 
      |_jquery-1.6.2.js,my.validate.js,jquery.validate.js,jquery.maskedinput.js 

Probé una de las soluciones publicadas en Using jQuery with JSF 2.0's resource pero no tuvo éxito.

Amablemente sugiérame una solución para esto. No quiero usar la validación interna de JSF con ajax, porque movimos el código de JSP a JSF y la validación ya está escrita. Quiero reutilizar la validación jQuery existente que escribí anteriormente.

Respuesta

27

Los <h:outputScript> (y <h:outputStylesheet>) recursos cargas de /resources carpeta. Debe colocar los scripts en esa carpeta.

WebContent 
|-- resources 
| `-- js 
|  |-- jquery-1.6.2.js 
|  |-- myapp.validate.js 
|  |-- jquery.validate.js 
|  `-- jquery.maskedinput.js 
|-- WEB-INF 
: 

A continuación, las siguientes declaraciones script debería funcionar:

<h:outputScript name="js/jquery-1.6.2.js" /> 
<h:outputScript name="js/jquery.validate.js" /> 
<h:outputScript name="js/jquery.maskedinput.js" /> 
<h:outputScript name="js/myapp.validate.js" /> 

(tenga en cuenta que he omitido el atributo library, porque el nombre de "JS" no indica una real library)

Eso su acercamiento <script> falló es probablemente causado por usar una ruta relativa incorrecta. Debe darse cuenta de que los recursos se resuelven en relación con la URL de solicitud actual y no a su ruta en el sistema de archivos del disco del lado del servidor.

+0

@ BalusC-Entonces, ¿se ve automáticamente en la carpeta de recursos? Si es así, ¿eso significa que tengo que colocar mi contenido web --- CSS, imágenes, etc. solo en recursos ??? ¿Es esta una estructura de carpeta estándar establecida en netbeans? – enthusiastic

+0

Eso es lo que dice la documentación, sí. No, esto no está relacionado con Netbeans. Es solo una herramienta. – BalusC

+0

@BalusC Usted dice que ha omitido el atributo de la biblioteca porque no indica una biblioteca real. ¿Qué quieres decir exactamente? ¿Qué tipo de nombres se pueden usar? ¿La biblioteca no se corresponde con el nombre de la carpeta en los recursos? – user579674

Cuestiones relacionadas