Facelets視圖是XHTML
頁面。 您可以通過向頁面添加組件來創(chuàng)建網(wǎng)頁或視圖,將組件連接到后端bean
的值和屬性,并在組件上注冊(cè)轉(zhuǎn)換器,驗(yàn)證器或偵聽器。
XHTML
網(wǎng)頁作為前端。 您的應(yīng)用程序的第一頁默認(rèn)為index.xhtml
。
網(wǎng)頁(如,在index.xhtml
中)的第一部分聲明頁面的內(nèi)容類型,即XHTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
``
在下一段中指定`XHTML`頁面的語言,然后聲明網(wǎng)頁中使用的標(biāo)簽庫的XML命名空間。
```html
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
一個(gè)完整的文件:index.xhtml 代碼內(nèi)容如下所示 -
<?xml version='1.0' encoding='UTF-8' ?>
<!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://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<title>Jsf Form</title>
</h:head>
<h:body>
<h:form id="form">
<h:outputLabel for="username">User Name</h:outputLabel>
<h:inputText id="name" value="#{user.name}" required="true">
<f:validateRequired for="name" />
</h:inputText><br/>
<h:commandButton value="OK" action="response.xhtml"></h:commandButton>
</h:form>
</h:body>
</html>
Facelets HTML標(biāo)簽以h:
開頭,用于在網(wǎng)頁和核心標(biāo)簽上添加組件f:validateRequired
用于驗(yàn)證用戶輸入。
h:inputText
標(biāo)簽接受用戶輸入,并通過EL表達(dá)式#{user.name}
設(shè)置托管bean
屬性名稱的值。
運(yùn)行index.xhtml
文件后,JSF將呈現(xiàn)一個(gè)HTML索引頁面。輸出如下所示 -
這是創(chuàng)建Facelets視圖的過程。現(xiàn)在,您可以創(chuàng)建第二個(gè)xhtml
頁面:response.xhtml 其中的代碼內(nèi)容如下 -
<?xml version='1.0' encoding='UTF-8' ?>
<!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://xmlns.jcp.org/jsf/html">
<h:head>
<title>Response Page</title>
</h:head>
<h:body>
<h1>
Hello #{user.name}
</h1>
</h:body>
</html>
運(yùn)行 index.xhtml
文件后,將顯示以下輸出。
在輸入框中寫入一個(gè)名字,提交得到如下結(jié)果 -
通過將Web部署描述符文件中的Faces Servlet映射到web.xml
文件中來完成JavaServer Faces應(yīng)用程序的配置。
在NetBeans IDE中,會(huì)自動(dòng)為您創(chuàng)建一個(gè)Web部署描述符文件。下面給出了一個(gè)自動(dòng)生成的web.xml
文件的內(nèi)容。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<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>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>