个性化阅读
专注于IT技术分析

创建Facelets视图并映射Faces Servlet

Facelets视图是XHTML页面。你可以通过在页面上添加组件, 将组件连接到支持Bean的值和属性以及在组件上注册转换器, 验证器或侦听器来创建网页或视图。

XHTML网页充当前端。你的应用程序的第一页默认为index.xhtml。

网页的第一部分声明了页面的内容类型, 即XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

下一节将指定XHTML页面的语言, 然后为该网页中使用的标记库声明XML名称空间。

<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">

// index.xhtml

<?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标记以h:开头, 用于在网页上添加组件, 而核心标记f:validateRequired用于验证用户输入。

h:inputText标记接受用户输入, 并通过EL表达式#{user.name}设置托管bean属性名称的值。

运行index.xhtml文件后, JSF将呈现HTML索引页。输出如下。

//输出:索引页

JSF Facelets视图和映射1

这是创建Facelets视图的过程。现在, 你可以创建第二个xhtml页面作为response.xhtml, 如下所示。

// response.xhtml

<?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>

运行索引文件后, 将显示以下输出。

输出:

//索引页

JSF Facelets视图和映射2

//回应页面

JSF Facelets视图和映射3

映射Faces Servlet

JavaServer Faces应用程序的配置是通过在Web部署描述符文件web.xml中映射Faces Servlet来完成的。

在NetBeans IDE中, 将自动为你创建一个Web部署描述符文件。自动生成的web.xml文件在下面给出。

// web.xml

<?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>

赞(0)
未经允许不得转载:srcmini » 创建Facelets视图并映射Faces Servlet

评论 抢沙发

评论前必须登录!