В данной статье рассказывается, как создать и настроить простое JSF приложение (JavaServer Faces).
Предустановленные программы: JDK 1.6, JBoss 5.1, Eclipse 3.4.2. Библиотеки jsf нет необходимости где-то искать и скачивать, они уже у вас есть: C:\jboss\server\default\deploy\jbossweb.sar\jsf-libs и версия там 1.2. Если у вас их нет, значит, скачиваем и кладем в папку WEB-INF/lib. На момент написания статьи стабильной версией jsf была 1.2, что и используется в данном случае.
New -> Dynamic Web Project. Даем имя проекту: test, выбираем сервер, т.е. в Target Runtime должно быть указано JBoss v.5.0, Dynamic Web Module version - 2.5, в Configuration выбираем JavaServer Faces v1.2 project и кликаем Next, в следующем окошке, перед тем как кликнуть Finish, проверьте настройки конфигурации jsf:

Далее создаем класс:
public class MyBean {
private String input;
private String output;
public String action() {
output = "Welcome at the JSF world, " + input;
return null;
}
public String getInput() {
return input;
}
public void setInput(String input) {
this.input = input;
}
public String getOutput() {
return output;
}
public void setOutput(String output) {
this.output = output;
}
}
Открываем файл WebContent/WEB-INF/faces-config.xml, далее внизу из меню выбираем ManagedBean, выбираем request и жмём Add.

В следующем окошке в Using an existing Java class указываем MyBean или пользуемся кнопкой Browse. -> Next. Обратите внимание, наш бин называется myBean – в соответствии с конвенцией бин называется так же как класс, но с маленькой буквы, будьте внимательны и случайно не напишите вместо myBean – MyBean. Далее Next и Finish. Если Вы все правильно сделали, то открыв вкладку Source, увидите следующий код.
<managed-bean>
<managed-bean-name>myBean</managed-bean-name>
<managed-bean-class>MyBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.jspx</param-value>
</context-param>
Далее ограничим прямой доступ к веб страничкам, т.е. при наборе index.jspx, чтоб не вылазили всякие безобразия.
<security-constraint>
<web-resource-collection>
<web-resource-name>Restrict direct access to JSPs</web-resource-name>
<url-pattern>*.jspx</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
Создаем index.jspx
<f:view>
<h:form>
<h:outputLabel for="input" value="Enter your name:" />
<h:inputText id="input" value="#{myBean.input}" required="true" />
<h:commandButton value="submit" action="#{myBean.action}" />
<h:outputText value="#{myBean.output}" />
<h:messages />
</h:form>
</f:view>
Тег <f:view> означает, что содержимое относится к jsf.
Суффиксом f обозначаются теги jsf, а h – html.
Далее делаем war-ник: Export ->War file -> Destination -> C:\jboss\server\default\deploy и смотрим наше приложение по адресу: http://localhost:8080/test/index.jsf
При написании статьи частично использовался следующий ресурс: http://balusc.blogspot.com/2008/01/jsf-tutorial-with-eclipse-and-tomcat.html