Введение
JSF - Java Server Faces это Java вэб фреймворк построенный на идее переиспользуемых ui компонентов. JSF - это стандардизированная Java технология. На моем опыте JSF очень облегчил работу если сравнивать его с JSP. Смысл JSF это переиспользуемые компоненты которые очень облегают разработку.Основные элементы JSF которые вам нужно помнить:
1. Управляемые бины2. Сильная система шаблонов
3. Большой спектр библиотек тегов на основе XML
4. Встроенная поддержка AJAX - <f:ajax /> (советую попробовать такие фреймворки как Richfaces, PrimeFaces и IceFaces)
5. Expression Language (EL) - методика по средствам которой вы имеете доступ к своим управляемым бинам в JSF странице.
Это были ключевые элементы JSF 2.
Примеры JSF:
Simple "Hello World" JSF Application
Для данного урока требуется пройти предыдущие уроке по установке рабочей среды. Откройте Eclipse.
1. File >> New >> Other >> Web >> Dynamic Web Project
2. Project name: helloworld
3. Choose your Jboss runtime
4. Dynamic web module version: 3.0
5. Configuration: Default for your targeted runtime
6. Next
7. Now you have to choose your folders on the build path. I use the following structure:
src/main/java (For your java classes)
src/main/resources (For some of your configuration files)
8. In the next window tick on "Generate web.xml"
8.1 Now the wizard will ask if you prefer Java EE perspective. Personally me, I prefer Web Development perspective.
Теперь у вас есть структура стандартного веб проекта. Далее вам нужно изменить некоторые вещи.
В web.xml который находится в WebContent/WEB-INF поместите следующий код (вместо того который там есть):
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>Helloworld</display-name>
<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param>
<session-config> <session-timeout>6</session-timeout> </session-config>
<servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping>
<!-- Use Seam Catch for these --> </web-app>
В WebContent/WEB-INF создайте файл faces-config.xml и вставьте в н:его следующий код:
<?xml version="1.0" encoding="UTF-8"?><faces-config version="2.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"> <name>Helloworld1</name>Создайте index.html в корне вашего вэб приложения (WebContent) со следующим контентом:
<application> <resource-bundle> <base-name>resources</base-name> <var>resources</var> </resource-bundle> </application></faces-config>
<html><head><meta http-equiv="Refresh" content="0; URL=home.xhtml"/></head></html>Создайте home.xhtml в той же дериктории:
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html">
<h:outputText value="Hello World!" />
</ui:composition>
Project >> Clean >> Your project
Внизу у вас есть вкладка Server. Добавьте в ней нужный сервер и добавьте ваше приложение. Full Publish.
Включаем сервер и заходим через браузер на localhost:8080/helloworld. Если у вас возникли какие-либо вопросы то пишите их в комментариях.
С уважением,
Netlink community member
Прочел, жалко что автор никак не комментирует зависиомсти между файлами и параметрвами в них. Труно на начальном этапе все понять. Сделал все как написано- получаю ошибку :
ОтветитьУдалить/home.xhtml Not Found in ExternalContext as a Resource
При запуске сервера вижу :JBAS018559: Deployed "helloworld.war"
Проверьте структуру проекта. Если index.html и home.xhtml находятся в разных папках, то указывайте "/home.xhtml". Извиняюсь за поздний ответ. Пишите ещё.
ОтветитьУдалить