Какие компоненты RichFaces используют прототип, которые используют jquery? - PullRequest
9 голосов
/ 09 ноября 2010

Я пытаюсь удалить jquery и прототип и Scriptaculous из моего проекта RichFaces.Я не хочу, чтобы эти библиотеки были там, потому что я хочу использовать в этом проекте последнюю версию jQuery, а наличие 3 старых версий этих библиотек затрудняет. RichFaces требуют этих библиотек.На самом деле, мне кажется, что «1007 * сумасшедший» кажется, что они решили включить туда и прототип, и jquery.

Ответы [ 3 ]

6 голосов
/ 10 ноября 2010

Если вы используете RichFaces 3.1.x, вы можете добавить это в свой файл web.xml

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

Однако это не будет работать в более поздних версиях.Дополнительная информация здесь .

Если вы хотите использовать последнюю версию jQuery в своем собственном коде, посмотрите это сообщение в блоге Я написал, объясняя, как вы можете использовать своисобственная версия jQuery без конфликтов.

Основная идея заключается в том, что вы должны использовать jQuery.noConflict(); Вы можете назначить это своему собственному селектору, например: $j = jQuery.noConflict();

Тогда вы можете свободно использовать свойсобственная версия jQuery, не затрагивающая версию, поставляемую с Richfaces.

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

Richfaces 4.x поставляется с jQuery 1.4

3 голосов
/ 10 ноября 2010

Это отчасти безумие. Я не уверен, изменилось ли это в Richfaces 4, но для 3.x верно следующее:

  • Прототип используется для ядра Ajax так что от этого не избавишься.
  • Scripatculous используется для rich:effect.
  • jQuery используется для таких компонентов, как Выбор даты.

Однако вы сможете обновить их версии и использовать свою собственную при условии, что вы используете LoadScriptStrategy из NONE в своем файле web.xml и загружаете свои скрипты вручную на свои страницы.

<context-param>
    <param-name>org.richfaces.LoadScriptStrategy</param-name>
    <param-value>NONE</param-value>
</context-param>
2 голосов
/ 11 ноября 2010

Richfaces 3.x определяет зависимости скрипта для каждого компонента в richfaces-ui.jar / META-INF / rich.component-dependencies.К сожалению, большинство компонентов пользовательского интерфейса Richfaces имеют зависимости как от jQuery, так и от Prototype.

Базовая функциональность ajax (пришедшая из ajax4jsf) довольно чистая и не зависит ни от jQuery, ни от Prototype.Поэтому для поддержки ajax вам нужно следующее:

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

Вы можете собрать их вместе в пользовательский файл, чтобы избежать их индивидуальной загрузки Richfaces.Вам нужно будет установить для context-param org.richfaces.LoadScriptStrategy в web.xml значение NONE, если вы хотите использовать собственный скрипт.

Если вы хотите использовать элементы управления пользовательского интерфейса, тогда вывероятно, в конечном итоге придется иметь как JQuery, так и прототип.Однако вы можете обновить базовый jQuery до 1.4.3, например.Для этого вам нужно взглянуть на твики, которые Richfaces вносит в jQuery.js, и повторно применить к более поздней версии jQuery.

Richfaces 4 должен быть намного более чистой реализацией.Я надеюсь на это!

...