2010-11-09 632 views
9

Estoy tratando de eliminar jquery y prototipo y Scriptaculous de mi proyecto RichFaces. No quiero esas librerías allí porque quiero usar la última versión de jQuery en este proyecto, y tener 3 versiones antiguas de estas librerías hace que sea difícil.¿Qué componentes de RichFaces usan prototipo, que usan jquery?

No encuentro ningún documento en línea que diga qué partes de RichFaces requieren estas librerías. De hecho, me parece un poco loco que decidieron incluir el prototipo y el jquery allí.

Respuesta

6

Si está utilizando RichFaces 3.1.x puede agregar esto en su archivo web.xml

<context-param> 
    <param-name>org.richfaces.ExcludeScripts</param-name> 
    <param-value>Prototype,Scriptaculous,JQuery</param-value> 
</context-param> 

Sin embargo, esto no funcionará en versiones posteriores. Más información here.

Si desea utilizar la última jQuery en su propio código, eche un vistazo a this blog post que escribí explicando cómo puede usar su propia versión de jQuery sin conflictos.

La idea básica es que usted tiene que utilizar jQuery.noConflict(); puede ser asignada a su propio decir selectora: $j = jQuery.noConflict();

entonces usted es libre de utilizar su propia versión de jQuery sin afectar la versión con RichFaces.

function showMessages() { 
    $j("div#messagetextPanel").fadeIn("fast"); 
} 

RichFaces 4.x se incluye con jQuery 1.4

3

Es un poco loco. No estoy seguro de si esto ha cambiado en Richfaces 4, pero lo siguiente es cierto para 3.x.

  • Prototype se utiliza para el núcleo Ajax por lo que no puede deshacerse de eso.
  • Scripatculous se utiliza para rich:effect.
  • jQuery se utiliza para componentes como el selector de fecha .

Sin embargo, podrá actualizar las versiones de estos y usar los suyos propios siempre que use LoadScriptStrategy of NONE en su web.xml y cargue los scripts manualmente en sus páginas.

<context-param> 
    <param-name>org.richfaces.LoadScriptStrategy</param-name> 
    <param-value>NONE</param-value> 
</context-param> 
+2

JQuery 1.4 no es automáticamente compatible con versiones anteriores de 1.3. Así que no haría esto si estuviera donde tú –

2

RichFaces 3.x define dependencias de secuencia de comandos para cada componente en richfaces-ui.jar/META-INF/rich.component-dependencias. Desafortunadamente, la mayoría de los componentes de la interfaz de usuario de Richfaces tienen una dependencia tanto de jQuery como de Prototype.

La funcionalidad básica de ajax (que proviene de ajax4jsf) es bastante limpia y no depende de jQuery o Prototype. Así que para conseguir el apoyo ajax de trabajo sólo tiene la siguiente:

  • /a4j/g/3_3_1.GAorg.ajax4jsf.javascript.AjaxScript
  • /a4j/g/3_3_1.GAorg/ajax4jsf/javascript/scripts/ formar.js

Puede juntarlos en un archivo personalizado para evitar que se carguen individualmente con Richfaces. Tendrá que establecer el contexto-param org.richfaces.LoadScriptStrategy en web.xml en NONE si desea utilizar un script personalizado.

Si desea utilizar los controles de la interfaz de usuario, es probable que termine teniendo que tener jQuery y prototipo. Sin embargo, puede actualizar el jQuery subyacente a 1.4.3, por ejemplo. Para hacerlo, tendrá que ver los ajustes que Richfaces hace a jQuery.js y volver a aplicar a la versión posterior de jQuery.

Richfaces 4 se supone que es una implementación mucho más limpia. ¡Eso espero!

Cuestiones relacionadas