Jquery Richfaces по умолчанию не загружен на страницу

Я столкнулся с очень странной проблемой. Я создаю веб-приложение, используя jsf 1.2 и richfaces 3.3.3. Я не загружал никаких внешних версий jquery, а придерживался версии по умолчанию, предоставляемой richfaces, т.е. версии jquery 1.3.2. Я получаю доступ к jquery по умолчанию, используя ключевое слово «jQuery».

Я включил несколько файлов javascript в верхней части моей страницы, которые содержат jquery. Когда я удаляю все компоненты richfaces с этой страницы, похоже, что jquery не загружен. То есть в консоли я вижу сообщение «jQuery не определено». Но когда я включаю тег «rich:extendedDataTable» на свою страницу, эта ошибка исчезает. Странно то, что ошибка все еще сохраняется, если я включаю «rich: dataTable». Похоже, jQuery загружается на мою страницу только тогда, когда я использую «rich:extendedDataTable». Итак, что я делаю сейчас, так это помещаю «богатую: расширенную таблицу данных» на эту страницу по моей причине, и рендеринг имеет значение «Ложь». Я не уверен, как это имеет смысл.

JSF включает в себя верхнюю часть страницы

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
                            xmlns:h="http://java.sun.com/jsf/html"
                            xmlns:f="http://java.sun.com/jsf/core"
                            xmlns:a4j="http://richfaces.org/a4j"
                            xmlns:rich="http://richfaces.org/rich"
                            xmlns:t="http://myfaces.apache.org/tomahawk"
                            xmlns:ui="http://java.sun.com/jsf/facelets">    
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <link href="../../styles/bootstrap.min.css" rel="stylesheet" type="text/css" />
        <link href="../../styles/Stylesheet.css" rel="stylesheet" type="text/css" />
        <script src ="first.js" language="JavaScript"/>
        <script src ="second.js" language="JavaScript"/>
        <script src ="validation.js" language="JavaScript"/>    

В консоли отображается следующая ошибка: ReferenceError: jQuery не определен.

Что здесь происходит?. Почему это похоже на то, что jquery загружается только тогда, когда я включаю определенные богатые компоненты. Как сделать, чтобы usre jQuery был доступен на моем apge по умолчанию, даже если на этой странице не загружены расширенные компоненты


person user2317577    schedule 23.07.2013    source источник


Ответы (1)


RichFaces добавляет импорт для JQuery, только если он нужен для себя. Вы должны заставить RichFaces загружать JQuery, даже если вы не используете какой-либо компонент RichFaces, использующий JQuery.

Вы можете принудительно импортировать JQuery, написав следующее:

<a4j:loadScript src="resource://jquery.js"/>

Если вы будете искать этот код, вы найдете множество примеров.

person LaurentG    schedule 23.07.2013
comment
Ну .. это сделало это ... большое спасибо .. никогда не выпускал, чтобы я мог заставить Richfaces загружать jquery на страницу таким образом .. вы сэкономили мне много времени .. - person user2317577; 23.07.2013