在JSF标签中文本输入框叫做inputText,而密码输入库叫inputSecret。下面是一个简单的JSF和JSP结合的用户接口程序。
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=GB2312"> <title>第一个JSF程序</title> </head> <body> <f:view> <h:form id="simpleForm"> <h:outputText id="favoriteLabel" value="请输入一个数字:"/> <h:inputText id="favoriteValue" value="#{simple.longValue}"> <f:validateLongrange maximum="30" minimum="0"/> </h:inputText> <p/> <h:commandButton id="submit" value="提交" action="#{simple.simpleActionMethod}"/> </h:form> </f:view> </body> </html> |
在上面的代码中,我们可以了解到JSF是如何同JSP集成的。我们首先可以看到一个内核标签:view。然后是几个JSF组件。如form、outputText、inputText以及commandButton。这几个组件被放到form中从而开成了form中的一部分。在程序的最开始,必须使用import导入两个标签库。代码如下。
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> |
上面2行代码声明了JSP中要使用哪一个JSF标签库。内核库使用前缀(prefix)f声明,而HTML库使用前缀(prefix)h声明。这两个前缀并不是必须要使用,而只是一个建议。在程序中,内核库必须要使用,因为view在所有的JSF页中必须使用。而HTML标签在运行时将JSF标签转化为HTML组件,这个h前缀并不是必须的,而是JSF规范推荐使用的,这样,我们使我们的JSF程序更易读。
在声明后是几行标准的HTML语句,本文不再详述。从 f:view 开始,是一段JSF语句。这段代码如下所示:
<f:view> <h:form id="simpleForm"> <h:outputText id="favoriteLabel" value="请输入一个数字:"/> <h:inputText id="favoriteValue" value="#{simple.longValue}"> <f:validateLongrange maximum="30" minimum="0"/> </h:inputText> <p/> <h:commandButton id="submit" value="提交" action="#{simple.simpleActionMethod}"/> </h:form> </f:view> |
/f:view 标签预示着JSF的开始,而它的下一个标签form将建立一个HTML Form。而outputText标签相当于HTML中的label组件。inputText标签相当于HTML中的textField组件。而commandButton标签相当于HTML中的submit按钮。运行这个JSP程序,将得到如图1所显示效果。
三、JSP如何响应JSF的请求
从上面的例子我们已经知道如何在JSP中使用JSF了,在这一部分让我们来看看在JSF是如何处理请求的。
首先让我们来看一个例子,这个例子是将华氏度转换为摄氏度。当用户点击提交按钮时程序将进行转换。
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=GB2312"> <title>温度转换程序</title> </head> <body> <f:view> <h:form> <div> <h:outputText id="fahrenheitLabel" value="请输入华氏温度:"/> <span> <h:inputText id="temperature" value="#{tc.fahrenheitTemp}"> <f:validateDoublerange minimum="-100.0" maximum="100.0"/> <f:valuechangeListener type="tempconv.page.TCChangedListener"/> </h:inputText> </span> </div> <div> <h:outputText id="celsiusLabel" value="摄氏温度:"/> <span> <h:outputText id="celsiusValue" value="#{tc.celsiusTemp}"> <f:convertNumber maxFractionDigits="3" type="number"/> </h:outputText> </span> </div> <div> <h:commandButton value="转换" action="#{tc.convert}"> </h:commandButton> </div> </h:form> </f:view> </body> </html> |
更多内容请看PCdog.com--Jsp 实例应用 Jsp 相关文章 jsp技巧专题
上一页 [1] [2] [3] 下一页