【IT168技术文档】
该页面起始于下列标签库声明:
JSF实现定义了两套标签,核心标签独立于呈现技术。HTML标签将产生HTML特定的标签。如果希望Web应用程序来呈现页面,以作为一种客户端技术,则必须使用不同的标签库。<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
大量标签是标准的HTML标签:body,table等等。
有些标签具有前缀,例如h:inputText和f:view,这些是JSF标签,两个taglib声明说明了JSF标签库。
h:inputText,h:inputSecret和h:commandButton标签对应于文本字段,密码字段和提交按钮。
输入字段连接到对象属性,如属性value=”#{user.name}”告诉JSF实现将该文本字段于user对象的name属性相连接。user是下面给出UserBean类的一个实例,name是该类的一个属性。
标签可以选择任意前缀,例如:h:inputText和f:view。我们使用f作为核心标签,使用h作为HTML标签。
多数页面都类似于HTML表单,注意区别:
所有JSF标签都包含在f:view标签中。
不使用HTML form标签,而是在h:form标签中包含所有JSF组件。
不使用熟悉的input HTML标签,而是使用h:inputText,h:inputSecret,h:commandButton。
输入字段值绑定到一个bean属性<h:inputText value="#{user.name}"/>,当显示该页面时调用getName()方法来获取当前属性值,当提交该页面时,调用setName()方法来设置用户输入的值。h:commandButton标签具有一个action属性,它的值用来指导导航规则
<h:commandButton value="Login" action="login" />
当用户输入name和password并且单击登录按钮时,将显示欢迎界面:
欢迎信息包括用户名称,该例子中忽略密码。
welcome.jsp页面的代码:
该页面通过<h:outputText value="#{user.name}"/>中的value="#{user.name}"属性来从UserBean类中的getName()方法得到index.jsp页面所输入的用户名并显示。<html> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <f:view> <head> <title>This is the first JSF example!</title> </head> <body> <h3> Welcome to JSF : <h:outputText value="#{user.name}"/> </h3> </body> </f:view> </html>