Независимо от того, какие типы серверных тегов вы используете, к тому времени, когда ваша страница попадет в браузер, который уже ушел, и это всего лишь HTML. (По крайней мере, так было бы лучше, иначе все бы не сработало.) Вам нужно сделать так, чтобы ваш код вызывался обработчиком события load. Есть разные способы сделать это, но самый простой из них:
<f:verbatim>
<script type="text/javascript">
window.onload = function() {
alert("hi");
}
</script>
</f:verbatim>
Теперь, что касается инициализации другой части страницы, еще раз важно то, что заканчивается в HTML. Вы захотите, чтобы там был какой-то HTML-контейнер (<div>
или что-то в зависимости от дизайна вашей страницы), и вы хотите, чтобы он имел уникальный атрибут "id". Ваш Javascript может затем использовать «id», чтобы найти элемент и установить его содержимое:
var elem = document.getElementById("whatever");
elem.innerHTML = // ... whatever ;
Вы, вероятно, сделаете это внутри функции load.
Кроме того, если вы используете Facelets вместо JSP, который представляет собой технологию представления на основе XML, вам потребуется добавить разделители разделов XML CDATA, если ваш JavaScript содержит комментарии // или литералы, такие как <,>, &&, и т.д. Вот пример с разделителями XML CDATA:
<f:verbatim>
<script type="text/javascript">
//<![CDATA[
//Comments won't show error now.
window.onload = function() {
alert("hi");
}
//]]>
</script>
</f:verbatim>
Здесь вы можете найти подробное объяснение , когда использовать CDATA. Они вам не нужны, если вы создаете страницы HTML5.
Удачного кодирования!