Как включить файлы JavaScript по h: outputScript?
Я хочу использовать плагин jQuery Validate с JSF для проверки формы на стороне клиента. Я затрудняюсь импортировать ресурсы.
На моей странице JSF у меня
<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>
Когда я нажимаю вкладку script в Firefox, я не вижу никаких файлов script в раскрывающемся списке. Появится сообщение:
Если теги имеют атрибут типа, он должен быть равен "text/javascript" или "application/javascript". Также скрипты должны быть синтаксически корректными.
Теперь мой jquery-эффект, как наведение курсора мыши, скрыть, показать и т.д., не работает. Я пробовал с обычными тегами script
<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>
Это бесполезно. Тем не менее он не смог найти мои JS файлы. Все мои JS файлы размещены под
Web pages
|_ js
|_jquery-1.6.2.js,my.validate.js,jquery.validate.js,jquery.maskedinput.js
Я попробовал одно из решений, опубликованное в Использование jQuery с ресурсом JSF 2.0, но не получило успеха.
Просьба предложить мне решение для этого. Я не хочу использовать встроенную проверку JSF с ajax, потому что мы перенесли код из JSP в JSF, и проверка уже написана. Я хочу повторно использовать существующую проверку jQuery, которую я ранее написал.
Ответы
Ответ 1
<h:outputScript>
(и <h:outputStylesheet>
) загружает ресурсы из папки /resources
. Вам нужно поместить скрипты в эту папку.
WebContent
|-- resources
| `-- js
| |-- jquery-1.6.2.js
| |-- myapp.validate.js
| |-- jquery.validate.js
| `-- jquery.maskedinput.js
|-- WEB-INF
:
Затем должны работать следующие объявления script:
<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" />
(обратите внимание, что я пропустил атрибут library
, потому что имя "js" не указывает реальную библиотеку)
То, что ваш сбой <script>
не удалось, возможно, вызвано неправильным относительным путем. Вам нужно понять, что ресурсы разрешены относительно текущего URL-адреса запроса, а не их пути в файловой системе на стороне сервера.