第2章 JSF的基本用法_第1頁
第2章 JSF的基本用法_第2頁
第2章 JSF的基本用法_第3頁
第2章 JSF的基本用法_第4頁
第2章 JSF的基本用法_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

經(jīng)典JavaEE課程段鵬松第2章JSF的基本用法了解什么是JSF掌握J(rèn)SF的基本用法掌握J(rèn)SF的配置文件掌握托管bean的創(chuàng)建及用法掌握J(rèn)SF的導(dǎo)航模型了解JSF的標(biāo)簽用法掌握J(rèn)SF的運(yùn)行流程掌握J(rèn)SF的消息用法課程目標(biāo)目錄MVC和JSF下載、安裝JSF及使用入門解讀JSF配置托管Bean和表達(dá)式語言導(dǎo)航模型使用UI標(biāo)簽創(chuàng)建視圖頁面JSF的運(yùn)行流程和生命周期利用JSF的消息MVC概述MVC模型:Model-View-Controller,是一種模型、思想,和具體編程語言無關(guān)。Model1模型Model1非MVC模型,JSP作為控制器Model2模型Servlet作為前端控制器,Servlet中調(diào)用JavaBean來完成實(shí)際的業(yè)務(wù)邏輯處理。MVC的特點(diǎn)多個視圖對應(yīng)一個模型模型返回的數(shù)據(jù)與顯示邏輯分離三層架構(gòu)設(shè)計,降低了各層之間的耦合控制器的作用非常重要更符合軟件工程的思想常見的MVC框架StrutsStruts1.XStruts2.XTapestrySpring內(nèi)置的MVCJSF其他MVC框架JSF概述JSF規(guī)范本身就是JavaEE5的MVC規(guī)范,通常作為前端組件使用。提倡以頁面組件的方式隱藏傳統(tǒng)Web應(yīng)用開發(fā)的細(xì)節(jié),允許開發(fā)者以傳統(tǒng)桌面編程的方式來開發(fā)Web應(yīng)用。JSF的實(shí)現(xiàn)有兩種方式Sun公司的JSFRI(ReferenceImplementantion)Apache的MyFacesJSF概述JSF既是JavaWeb用戶界面標(biāo)準(zhǔn),又是嚴(yán)格遵循模型-視圖-控制器(MVC)設(shè)計模式的框架。用戶界面代碼(視圖)與應(yīng)用程序數(shù)據(jù)和邏輯(模型)的清晰分離使JSF應(yīng)用程序更易于管理。所有與應(yīng)用程序的用戶交互均由一個前端“Facesservlet”(控制器)來處理。JSF的運(yùn)行原理JSF的優(yōu)勢允許通過拖放組件的方式來快速開發(fā)JSP頁面允許使用服務(wù)器端業(yè)務(wù)代碼來響應(yīng)客戶端事件將頁面上的UI組件的值綁定到服務(wù)器端的數(shù)據(jù)模型利用可重用和可擴(kuò)展的UI組件來構(gòu)造用戶界面跨請求保存和恢復(fù)UI狀態(tài)Sun推出JSF的部分目的:對抗ASP.NETStruts和JSF的區(qū)別Struts是基于請求-響應(yīng)模型,只是提供了更簡捷、有效、易用的封裝。JSF采用面向?qū)ο蟮氖录ㄓ崣C(jī)制,Web編程中請求-響應(yīng)模型完全被隱藏起來了。目錄MVC和JSF下載、安裝JSF及使用入門解讀JSF配置托管Bean和表達(dá)式語言導(dǎo)航模型使用UI標(biāo)簽創(chuàng)建視圖頁面JSF的運(yùn)行流程和生命周期利用JSF的消息下載和安裝JSFJSFRI和MyFaces從用法角度無太大區(qū)別,本課程以JSFRI為例來學(xué)習(xí),本課程所用的JSF版本是JSF1.2_14。JSF的核心Jar包:jsf-api.jar和jsf-impl.jar,對于不同的Web服務(wù)器,安裝方式不同。(具體參考教材P57)下載和安裝JSFJSF需要JSTL標(biāo)簽庫的支持NetNeans已經(jīng)內(nèi)置了JSF框架的支持在Web應(yīng)用中安裝JSF標(biāo)簽庫的方式<%@tagliburi=“/jsf/html”prefix=“h”%><%@tagliburi=“/jsf/core”prefix=“f”%>JSF使用步驟編寫前臺頁面即前臺的jsp或jsf頁面一般會使用較多的jsf標(biāo)簽開發(fā)托管bean類似于Struts中的action+POJO類需要有相應(yīng)的配置文件定義導(dǎo)航規(guī)則定義邏輯視圖和物理視圖之間的對應(yīng)關(guān)系通過配置文件完成JSF的技術(shù)任務(wù)1、Model部分:編寫JavaBean或EJB和輔助類。2、View部分:用JSF組件的自定義標(biāo)簽編寫JSP頁面。3、Control部分:將JSF組件的自定義標(biāo)簽UI事件注冊到JavaBean或EJB監(jiān)聽器中,如導(dǎo)航過程。4、部署描述部分:Web.xml、faces-config.xml和server-config.wsdd文件的編寫。JSF的使用舉例以一個用戶登錄為例來介紹JSF的使用流程。實(shí)例操作演示用戶登錄的JSF例子了解JSF框架的使用步驟<%@tagliburi="/jsf/core"prefix="f"%><%@tagliburi="/jsf/html"prefix="h"%><html><head> <title>第一個JSF程序</title></head><body><f:view><h:form><h3>請輸入您的名稱</h3>

名稱:<h:inputTextvalue="#{}"/><p> <h:commandButtonvalue=“提交"action="login"/> </h:form></f:view></body></html>示例代碼目錄MVC和JSF下載、安裝JSF及使用入門解讀JSF配置托管Bean和表達(dá)式語言導(dǎo)航模型使用UI標(biāo)簽創(chuàng)建視圖頁面JSF的運(yùn)行流程和生命周期利用JSF的消息配置核心控制器在配置web.xml文件中配置FacesServlet類<servlet><servlet-name>FacesServlet</servlet-name><servlet-class>javax.faces.webapp.FacesServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>FacesServlet</servlet-name><url-pattern>/faces/*</url-pattern></servlet-mapping>核心配置器的其他參數(shù)<!--配置JSF程序狀態(tài)的保存位置,如果設(shè)置成server則保存在session中,如果保存在client中可以保證服務(wù)器重啟應(yīng)用狀態(tài)也不會丟失--><context-param><param-name>javax.faces.STATE_SAVING_METHOD</param-name><!--程序狀態(tài)保存在客戶端--><param-value>client</param-value></context-param><!--指定JSF映射資源時的默認(rèn)后綴,默認(rèn)為.jsp--><context-param><param-name>javax.faces.DEFAULT_SUFFIX</param-name><param-value>.jsp</param-value></context-param><!--指定JSF所管理的生命周期實(shí)例的標(biāo)識符--><context-param><param-name>javax.faces.LIFECYCLE_ID</param-name><param-value></param-value></context-param>核心配置器的其他參數(shù)

<!--指定JSF配置文件的保存位置--><context-param><param-name>javax.faces.CONFIG_FILES</param-name><param-value>

/WEB-INF/faces-config-beans.xml,/WEB-INF/faces-config-nav.xml

</param-value></context-param><!--指定是否需要驗(yàn)證自定義組件--><context-param><param-name>javax.faces.verifyObjects</param-name><param-value>true</param-value></context-param><!--指定是否需要驗(yàn)證XML文件--><context-param><param-name>javax.faces.validateXml</param-name><param-value>true</param-value></context-param>核心配置器的其他參數(shù)

<!--當(dāng)設(shè)置在服務(wù)器端保存狀態(tài)時,控制session保存的視圖數(shù)量,-1表示沒有限制--><context-param>

<param-name>javax.faces.NUMBER_OF_VIEWS_IN_SESSION</param-name><param-value>-1</param-value></context-param>NetBeans中使用JSF框架示意圖JSF配置文件結(jié)構(gòu)默認(rèn)名稱:faces-config.xml根元素:faces-config其他元素managed-beannavigation-ruleothersfaces-config.xml示例<faces-configversion="1.2"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-facesconfig_1_2.xsd"><!--配置托管Bean--> <managed-bean> <managed-bean-name>duanps</managed-bean-name> </managed-bean><!--定義導(dǎo)航規(guī)則與頁面--> <navigation-rule> <from-view-id>/index.jsp</from-view-id> <navigation-case> <from-outcome>JAVA</from-outcome> <to-view-id>/jsp/newJava.jsp</to-view-id> </navigation-case> </navigation-rule></faces-config>目錄MVC和JSF下載、安裝JSF及使用入門解讀JSF配置托管Bean和表達(dá)式語言導(dǎo)航模型使用UI標(biāo)簽創(chuàng)建視圖頁面JSF的運(yùn)行流程和生命周期利用JSF的消息托管Bean概述托管Bean是JSF應(yīng)用中最重要的應(yīng)用組件,因此開發(fā)JSF應(yīng)用的重要任務(wù)就是開發(fā)托管Bean。一般來說,一個托管bean和一個應(yīng)用頁面對應(yīng)。托管Bean定義了與頁面中UI組件關(guān)聯(lián)的屬性和方法。托管Bean概述JSF使用Bean來達(dá)到邏輯層與表現(xiàn)層分離的目的,Bean的管理集中在配置文件中,只要修改配置文件,就可以修改Bean之間的相依關(guān)系。BackingBeans:在真正的業(yè)務(wù)邏輯Bean及UI組件之間搭起橋梁,在BackingBean中會呼叫業(yè)務(wù)邏輯Bean處理使用者的請求,或者是將業(yè)務(wù)處理結(jié)果放置其中,等待UI組件取出當(dāng)中的值并顯示結(jié)果給使用者。托管Bean的定義和普通的JavaBean定義幾乎完全一致提供一個無參的構(gòu)造器為每個屬性定義gettter和setter方法托管Bean的屬性可以綁定到如下形式之一:綁定到一個組件的值(value屬性)綁定到一個組件實(shí)例(binding屬性)綁定到一個轉(zhuǎn)換器實(shí)例(<f:convertXxx…>)綁定到一個驗(yàn)證器實(shí)例(<f:validatorXxx…>)綁定到一個監(jiān)聽器實(shí)例(<f:xxxListener…>)托管Bean的配置托管Bean的基本定義:名稱 <managed-bean-name>類 <managed-bean-class> 存活范圍 <managed-bean-scope>可選設(shè)置屬性的初始值<managed-property>示例

<managed-property> <property-name>user</property-name> <value>#{user}</value></managed-property>在Java代碼中獲取Bean第一種方式:

FacesContextcontext=FacesContext.getCurrentInstance(); ValueBindingbinding= context.getApplication().createValueBinding("#{userBean}"); UserBeanbean=(UserBean)binding.getValue(context);

第二種方式: FacesContextctx=FacesContext.getCurrentInstance(); VariableResolvervariableResolver=ctx.getApplication().getVariableResolver(); UserBeanbean=(UserBean)variableResolver.resolveVariable(ctx,“userBean");第三種方式: Applicationapplication=context.getApplication(); UserBeanbean=

(UserBean)application.evaluateValueExpressionGet(

context,"#{userBean}",UserBean.class);托管Bean的作用域application:一直存活session:會話過程request:請求階段viewnone:需要時,臨時<!--配置托管Bean--> <managed-bean> <managed-bean-name>duanps</managed-bean-name> <managed-bean-class>com.dps.MyJsfAction</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean>JSF的表達(dá)式語言(EL)JSF表達(dá)式語言(EL):JSFExpressionLanguage搭配JSF標(biāo)簽來使用,是用來存取數(shù)據(jù)對象的一個簡易語言。以#開始,將變量或運(yùn)算式放置在{與}之間。#{userB}EL的變量名也可以程序執(zhí)行過程中所聲明的名稱,或是JSFEL預(yù)定義的隱含對象。#{}或#{param['name']}如果變量是List類型或Map類型的話,則可以在[]中指定索引。#{someBean.someList[0]}#{someBean.someMap[]}JSF的表達(dá)式語言(EL)示

例說

明#{myBean.value}返回保存在關(guān)鍵字myBean

下的對象的value屬性,或者如果myBean是一個Map,則返回存儲在關(guān)鍵字value下的元素#{myBean['value']}同"#{myBean.value}“#{myArrayList[5]}返回保存在關(guān)鍵字myArrayList下的List的第5個元素#{myMap['foo']}從保存在關(guān)鍵字myMap下的Map中返回保存在關(guān)鍵字foo下的對象#{myMap[foo.bar]}從保存在myMap關(guān)鍵字下的Map中返回保存在等于表達(dá)式foo.bar的值的關(guān)鍵字下的對象#{myMap['foo'].value}從保存在關(guān)鍵字myMap下的Map中返回保存在關(guān)鍵字foo下的對象的value屬性#{myMap['foo'].value[5]}從保存在關(guān)鍵字myMap下的Map返回關(guān)鍵字foo下的List或者數(shù)組的第5個元素#{myString}返回存儲在myString關(guān)鍵字下的String對象#{myInteger}返回存儲在myInteger關(guān)鍵字下的Integer對象#{user.role=='normal'}如果關(guān)鍵字user下的對象的role屬性等于normal則返回true.否則返回falseJSF的表達(dá)式語言(EL)示

例說

明#{(user.balance-200)==0}如果關(guān)鍵字user下的對象的balance屬性減去200等于0,則返回true。否則返回falseHello#{}!返回字符串"Hello",后跟關(guān)鍵字user下的對象的name屬性。所以,如果用戶的名稱是Sean,則會返回"HelloSean!"Youare#{(user.balance>100)?'loaded':'notloaded'}如果關(guān)鍵字user下的對象的balance屬性小于100,返回"Youareloaded",否則返回"Youarenotloaded"#{myBean.methodName}返回關(guān)鍵字myBean下名為methodName的對象的方法#{20+3}返回23JSF的表達(dá)式語言(EL)語

法替

代操

作[]

訪問數(shù)組、List元素或者M(jìn)ap條目()

創(chuàng)建子表達(dá)式并控制求解順序?:

條件表達(dá)式:ifCondition?trueValue:falseValue+

加-

減或者負(fù)號*

乘/div除%mod模(求余)==eq等于(對對象,使用equals()方法)!=ne不等于<

lt小于>

gt大于<=le小于或等于>=ge大于或等于&&and邏輯AND||or邏輯OR!not邏輯NOTempty

測試空值(null、空字符串、數(shù)組、Map或者沒有值的Collection)JSF的表達(dá)式語言(EL)隱含變量說

明實(shí)

例applicationScope應(yīng)用作用域變量的Map,以名稱作為關(guān)鍵字#{applicationScope.myVariable}cookie一個當(dāng)前請求的cookie值的Map,以cookie名稱作為關(guān)鍵字#{cookie.myCookie}facesContext當(dāng)前請求的FacesContext實(shí)例#{facesContext}header當(dāng)前請求的HTTP首部值的Map,以header名稱作為關(guān)鍵字。如果給定的header名稱有多個值,僅返回第1個值#{header['User-Agent']}headerValues當(dāng)前請求的HTTP首部值的Map,以header名稱作為關(guān)鍵字。對每個關(guān)鍵字,返回一個String數(shù)組(以便所有的值都能訪問)#{headerValues['Accept-Encoding'][3]}initParam應(yīng)用初始化參數(shù)的Map,以參數(shù)名稱為關(guān)鍵字。(也稱為servlet上下文初始化參數(shù),在部署描述符中設(shè)置)#{initParam.adminEmail}param請求參數(shù)的Map,以param

名稱作為關(guān)鍵字。如果對給定的參數(shù)名稱有多個值,僅返回第1個值#{param.address}JSF的表達(dá)式語言(EL)隱含變量說

明實(shí)

例paramValues請求參數(shù)的Map,以param

名稱作為關(guān)鍵字。對每個關(guān)鍵字,返回一個String數(shù)組(以便可以訪問所有的值)#{param.address[2]}requestScope請求范圍內(nèi)的變量的Map,以名稱作為關(guān)鍵字#{requestScope.user-Preferences}sessionScope會話范圍內(nèi)的變量的Map,以名稱作為關(guān)鍵字#{sessionScope['user']}view當(dāng)前視圖#{view.locale}JSF表達(dá)式示例如何將URL中的參數(shù)傳遞到JSF程序中?如果你有下面的URL:http://your_server/your_app/product.jsf?id=777,JSF頁面上,你也可以使用預(yù)定義的變量訪問參數(shù),例如:<h:outputTextvalue="#{param['id']}"/>注意:你必須直接調(diào)用該JSF頁面,并且使用servlet映射(mapping).如何添加上下文路徑到outputLink的URL中?在當(dāng)前的JSF實(shí)現(xiàn)中,當(dāng)在outputLink中定義的路徑以'/'開始時,沒有添加上下文路徑到URL中,請在URL中使用#{facesContext.externalContext.requestContextPath}前綴.例如:<h:outputLinkvalue="#{facesContext.externalContext.requestContextPath}/myPage.faces">托管Bean的方法處理導(dǎo)航的方法處理Action事件的方法處理ValueChange事件的方法處理輸入校驗(yàn)的方法實(shí)際操作演示托管Bean的分類Backing托管BeanController托管BeanModel托管BeanUtility托管Bean實(shí)際操作演示注意區(qū)分Backing-Bean和Controller-Bean初始化托管Bean的屬性使用<managed-property>標(biāo)簽<property-name><property-class><map-entries.../>othertags實(shí)際操作演示通過FacesContext訪問應(yīng)用環(huán)境在一些特殊場景下,應(yīng)用程序依然需要在托管Bean中訪問ServletAPI,JSF為這種需求提供了支持:通過FacesContext接口訪問ServletAPIFacesContext接口的方法:getResponseStream()getResponseWriter()實(shí)際操作演示目錄MVC和JSF下載、安裝JSF及使用入門解讀JSF配置托管Bean和表達(dá)式語言導(dǎo)航模型使用UI標(biāo)簽創(chuàng)建視圖頁面JSF的運(yùn)行流程和生命周期利用JSF的消息導(dǎo)航模型當(dāng)用戶單擊按鈕或超鏈接時,JSF可以根據(jù)導(dǎo)航規(guī)則轉(zhuǎn)向到其他頁面。JSF使用<navigation-rule>標(biāo)簽來配置導(dǎo)航規(guī)則,其有兩個有序的子元素:<from-view-id>,導(dǎo)航的起始頁面<navigation-case>,其子元素有:<from-action><from-outcome><to-view-id><redirect>導(dǎo)航模型Struts的頁面跳轉(zhuǎn)是在ActionBean中發(fā)生,execute方法最后返回一個actionForward來進(jìn)行跳轉(zhuǎn)。JSF則在事件處理方法中最后返回一個字符串,由系統(tǒng)在xml文件中匹配自動進(jìn)行跳轉(zhuǎn)。在JSF中也可以通過在JSP頁面的CommandButton的action屬性中直接填寫跳轉(zhuǎn)的別名直接跳轉(zhuǎn),而不必經(jīng)過事件處理方法的處理靜態(tài)導(dǎo)航配置方式將commandButton或commandLink的action屬性指定為一個靜態(tài)字符串在JSf配置文件中配置導(dǎo)航規(guī)則實(shí)際操作演示動態(tài)導(dǎo)航配置方式將commandButton或commandLink的action屬性綁定到某個托管Bean的處理方法在JSf配置文件中配置導(dǎo)航規(guī)則實(shí)際操作演示目錄MVC和JSF下載、安裝JSF及使用入門解讀JSF配置托管Bean和表達(dá)式語言導(dǎo)航模型使用UI標(biāo)簽創(chuàng)建視圖頁面JSF的運(yùn)行流程和生命周期利用JSF的消息概述JSF應(yīng)用的三個核心組件:JSF容器管理的托管BeanUI標(biāo)簽組成的應(yīng)用界面及綁定關(guān)系導(dǎo)航規(guī)則本節(jié)主要學(xué)習(xí)JSF的標(biāo)簽用法UI標(biāo)簽概述JSF提供了大量的UI標(biāo)簽來簡化創(chuàng)建視圖。使用這些標(biāo)簽,可以通過其value,binding,action,actionListener等屬性直接綁定到托管Bean的屬性,實(shí)例或者方法上。這也是JSF標(biāo)簽與JSP標(biāo)簽最大的區(qū)別。JSF包括兩組標(biāo)簽庫:jsf_core.tld核心標(biāo)簽庫和html_basic.tld。JSFUI組件繼承關(guān)系(部分)JSF標(biāo)簽(JSF核心標(biāo)簽庫)標(biāo)簽說明f:validateLength驗(yàn)證組件值的長度f:validateDoubleRange驗(yàn)證組件值的雙精度范圍f:validateLongRange驗(yàn)證組件值的長整型范圍f:validator向組件添加驗(yàn)證器f:loadBundle加載資源包f:verbatim向頁面中添加標(biāo)簽f:selectItem指定UISelectOne

或UISelectMany

組件的一個項(xiàng)目f:selectItems指定UISelectOne

或UISelectMany

組件的多個項(xiàng)目JSF標(biāo)簽(JSF核心標(biāo)簽庫)標(biāo)簽說明f:view創(chuàng)建頂層視圖f:subview創(chuàng)建視圖的子視圖f:facet向組件添加facetf:param向組件添加參數(shù)f:attribute向組件添加屬性f:actionListener在父組件上注冊操作監(jiān)聽器f:valueChangeListener向父組件注冊值變更監(jiān)聽器f:converter注冊任意轉(zhuǎn)換器f:convertDateTime注冊日期時間轉(zhuǎn)換器f:convertNumber注冊數(shù)量轉(zhuǎn)換器JSF標(biāo)簽(JSFHTML標(biāo)簽)組件標(biāo)簽說明UISelectOneh:SelectOneListbox單選列表框h:selectOneMenu單選菜單h:selectOneRadio單選按鈕集UISelectBooleanh:selectBooleanCheckbox單個復(fù)選框UISelectManyh:selectManyListbox復(fù)選框集h:selectManyCheckbox多行選擇列表框h:selectManyMenu多選菜單UIPanelh:panelGrid表示一個

HTML表格h:panelGroup組合一系列組件UIMessageh:message顯示一個組件的最近使用的消息UIMessagesh:messages顯示所有消息UIGraphich:graphicImage顯示一個圖像UIDatah:dataTable功能豐富的表格控件UIColumnh:column表示表格中的列JSF標(biāo)簽(JSFHTML標(biāo)簽)組件標(biāo)簽說明UIFormh:form表示

HTML表單元素UIInputh:InputText單行文本輸入控件h:inputTextarea多行文本輸入控件h:InputSecret密碼輸入控件h:inputHidden隱藏字段UIOutputh:outputLabel顯示文本h:outputLink鏈接到另一頁面或某頁面上的特定位置h:outputFormat顯示格式化的信息h:outputText當(dāng)前行文本輸出UICommandh:commandButton表示一個按鈕h:commandLink表示一個鏈接UI標(biāo)簽的通用屬性idimmediaterenderedrequiredrequiredMessagevaluestyle……UI標(biāo)簽均具有的屬性表單標(biāo)簽h:form標(biāo)簽產(chǎn)生HTMLform元素。如果在名為/index.jsp的JSF頁面中使用了無屬性的h:form標(biāo)簽,則Form呈現(xiàn)器將產(chǎn)生如下的HTML代碼:可以為h:form指定style或styleClass屬性。建議為表單元素明確指定id屬性。一般需要開發(fā)者提供頁面布局。<formid="_id0"method="post"action="/converter/index.faces"enctype="application/x-www-form-urlencoded">JSF標(biāo)簽(文本輸入)h:inputTexth:inputSecreth:inputTextarea<h:inputTextvalue="測試字符串"readonly="true"/><h:inputSecretvalue="#{form.passwd}"redisplay="true"/><h:inputTextareavalue="123456789012345"rows="3"cols="10"/><h:inputTextvalue="inputText"style="color:Yellow;background:Teal;"/>JSF標(biāo)簽(命令)h:commandButtonh:commandLinkh:outputLink<h:commandButtonvalue="按鈕"onclick="alert('buttonclicked')"type="button"/><h:outputLinkvalue=""><h:graphicImagevalue="java-dot-net.jpg"/><h:outputTextvalue=""/></h:outputLink><h:commandLinkvalue="歡迎"actionListener="#{form.useLinkValue}"action="#{form.followLink}"/>JSF標(biāo)簽(選擇)h:selectBooleanCheckboxh:selectManyCheckboxh:selectOneRadioh:selectOneListboxh:selectManyListboxh:selectOneMenuh:selectManyMenu選擇標(biāo)簽使用示例聯(lián)系我<h:selectBooleanCheckboxvalue="#{form.contactMe}"/>privatebooleancontactMe;publicvoidsetContactMe(booleannewValue){contactMe=newValue;}publicbooleangetContactMe(){returncontactMe;}<h:selectManyCheckboxvalue="#{form.colors}"><f:selectItemitemValue="Red"itemLabel="紅色"/><f:selectItemitemValue="Blue"itemLabel="藍(lán)色"/><f:selectItemitemValue="Yellow"itemLabel="黃色"/><f:selectItemitemValue="Green"itemLabel="綠色"/><f:selectItemitemValue="Orange"itemLabel="橘黃"/></h:selectManyCheckbox><h:selectOneRadiovalue="#{form.grade}"layout="pageDirection"><f:selectItemsvalue="#{form.grades}"/></h:selectOneRadio>privateSelectItem[]grades={newSelectItem(newInteger(1),"高中"),newSelectItem(newInteger(2),"專科"),newSelectItem(newInteger(3),"本科"),newSelectItem(newInteger(4),"碩士"),newSelectItem(newInteger(5),"博士")};publicSelectItem[]getGrades(){returngrades;}<h:selectOneListboxid="onelistbox"value="#{form.expert}"><f:selectItemitemValue="java"itemLabel="Java"/><f:selectItemitemValue="oracle"itemLabel="Oracle"/><f:selectItemitemValue="asp"itemLabel="ASP"/><f:selectItemitemValue="jsp"itemLabel="JSP"/></h:selectOneListbox><h:selectOneMenuid="onemenu"value="#{form.expert}"><f:selectItemitemValue="java"itemLabel="Java"/><f:selectItemitemValue="oracle"itemLabel="Oracle"/><f:selectItemitemValue="asp"itemLabel="ASP"/><f:selectItemitemValue="jsp"itemLabel="JSP"/></h:selectOneMenu>JSF標(biāo)簽(數(shù)據(jù)表格標(biāo)簽)屬性說明bgcolor

設(shè)置表格背景色border設(shè)置表格邊框?qū)挾萩ellpadding設(shè)置表格單元格周圍的邊距cellspacing設(shè)置表格單元格之間的間距first表格中所顯示的第一行的索引frame指定表格四周的邊框樣式;有效值:none、above、below、hsides、vsides、lhs、rhs、box、borderstyleClass指定整個表格的CSS類rowClasses行的CSS類列表,用逗號分隔列表columnClasses列的CSS類列表,用逗號分隔列表headerClass

表格標(biāo)題的CSS類footerClass用于表格頁腳的CSS類rules單元格之間的行樣式;有效值:groups、rows、columns、allvar數(shù)據(jù)表格所創(chuàng)建的變量名稱,表示該值中的當(dāng)前項(xiàng)目……<f:view><h:form><h:dataTablebgcolor="lightblue"value="#{Employeedata.employeelist}"var="employees"border="5"cellpadding="5"cellspacing="2"><h:column><f:facetname="header"><h:outputTextid="headerText1"value="姓名"/></f:facet><h:outputTextvalue="#{}"/></h:column><h:column><f:facetname="header"><h:outputTextid="headerText2"value="職位"/></f:facet><h:outputTextvalue="#{employees.position}"/></h:column></h:dataTable></h:form></f:view>JSF標(biāo)簽(數(shù)據(jù)表格標(biāo)簽)實(shí)際操作演示用戶注冊頁面示例目錄MVC和JSF下載、安裝JSF及使用入門解讀JSF配置托管Bean和表達(dá)式語言導(dǎo)航模型使用UI標(biāo)簽創(chuàng)建視圖頁面JSF的運(yùn)行流程和生命周期利用JSF的消息本節(jié)概述JSF是一個Web應(yīng)用,也會遵循請求/響應(yīng)的架構(gòu),與JSP的生命周期完全相似:客戶端發(fā)送一個HTTP請求,服務(wù)器端對請求進(jìn)行處理之后,向客戶端送回HTTP響應(yīng),整個JSP生命周期完成。JSF將請求/響應(yīng)的生命周期細(xì)化為更多階段,從而支持更加復(fù)雜的UI組件模型JSF將用戶請求分成兩種:初始請求:當(dāng)用戶直接向某個頁面發(fā)送請求時,請求沒有附加任何的參數(shù)信息。提交表單:單擊表單的提交按鈕、提交超鏈接時,就會發(fā)生提交表單請求。JSF的6個生命周期JSF的6個生命周期JSF提供了PhaseId類來代表生命周期階段,是一個枚舉類,使用的常量有:ANY_PHASE:任意一個生命周期階段RESTORE_VIEW:恢復(fù)視圖階段APPLY_REQUEST_VALUES:應(yīng)用請求值階段PROCESS_VALIDATIONS:處理輸入校驗(yàn)階段UPDATE_MODEL_VALUES:更新模型的值階段INVOKE_APPLICA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論