<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dict.CN 在線詞典, 英語(yǔ)學(xué)習(xí), 在線翻譯

    都市淘沙者

    荔枝FM Everyone can be host

    統(tǒng)計(jì)

    留言簿(23)

    積分與排名

    優(yōu)秀學(xué)習(xí)網(wǎng)站

    友情連接

    閱讀排行榜

    評(píng)論排行榜

    Tapestry總架構(gòu)

    原文:http://bilang.rocklv.net/Tapestry.html
    hideTapestry
    hide開(kāi)發(fā)調(diào)試
    hide禁止緩存參數(shù)
    leaf-Dorg.apache.tapestry.disable-caching=true -Dorg.apache.tapestry.enable-reset-service=true
    hide調(diào)試參數(shù)
    leafset JAVA_OPTS="-Dorg.apache.tapestry.disable-caching=true" set JPDA_ADDRESS=8000 set JPDA_TRANSPORT=dt_socket catalina jpda start
    hide表單驗(yàn)證
    hidedelegate
    leaf方案1:打印出錯(cuò)信息需要new一個(gè)ValidationDelegate。
    leaf方案2:.page文件中配置<bean>標(biāo)簽
    leaf方案3:.page中不配置<bean>,抽象方法上使用元數(shù)據(jù)@Bean
    hidevalidators
    leaf.page文件中每個(gè)需要驗(yàn)證的表單元素組件綁定一個(gè)validators
    leaf表達(dá)式:validators:+判斷條件+[錯(cuò)誤提示]
    hide空輸入問(wèn)題
    leaft4默認(rèn)空都可以驗(yàn)證通過(guò)
    leaf通過(guò)[value="validators:required"]來(lái)保證輸入不為空
    leafFieldlable可以與TextField綁定顯示錯(cuò)誤信息
    hide客戶端驗(yàn)證
    leaf在Form組件中綁定<binding name="clientValidationEnabled" value="true"/>
    hide若表單輸入驗(yàn)證正確,邏輯上的驗(yàn)證應(yīng)該在監(jiān)聽(tīng)方法中進(jìn)行
    leaf例如:蘋(píng)果庫(kù)存只有20,用戶買進(jìn)50,這是非法的
    leaf驗(yàn)證時(shí)應(yīng)向ValidationDelegate記錄出錯(cuò)信息
    hide創(chuàng)建delegate
    leafdelegate.setFormComponent((IFormComponent) getComponent("XXX"));
    leafdelegate.recordFieldInputValue(Integer.toString(XXXX));
    leafdelegate.record("XXX must be >=0",ValidationConstraint.TOO_SMALL);
    hideidea組件復(fù)用
    leaft4中一個(gè)組件不能用兩次,即一個(gè)jwcid不能在.html中重復(fù)出現(xiàn)
    leaf解決方案:組件重命名。<compoment id="rename" copy-of="name">
    leaf“@Class@XXX”表示訪問(wèn)一個(gè)class的XXX靜態(tài)方法或靜態(tài)變量. 其中Class為完整路徑(既包括包名)
    hide判斷按鈕是否clicked三種方式
    leaffull-1對(duì)每個(gè)button使用一個(gè)Form組件
    leaffull-2給每個(gè)button添加一個(gè)“tag”,通過(guò)tag值判斷which按鈕be clicked
    leaffull-3為每個(gè)button添加一個(gè)listener(簡(jiǎn)單、面向?qū)ο?,推薦使用)
    hideideasubmit提交原理
    hide監(jiān)聽(tīng)方法獲得參數(shù)的方式
    leaf1、實(shí)現(xiàn)IRequestCycle會(huì)的監(jiān)聽(tīng)方法的參數(shù)
    hide2、聲明帶正確參數(shù)順序的監(jiān)聽(tīng)方法,t4自動(dòng)boxing
    leaf* public type method(parameters)
    leaf* public type method(IRequestCycle cycle, parameters)
    leaf * public type method()
    leaf* public type method(IRequestCycle cycle)
    hide3、實(shí)現(xiàn)提交后轉(zhuǎn)頁(yè)
    leafpublic void listener(IRequestCycle cycle) { return cycle.active("PageName");}
    leafpublic String listener(IRequestCycle cycle) {return "PageName";}
    leafpublic IPage Listener(IRequestCycle cycle) {return (IPage)pageName;}
    leaf頁(yè)面提交后,t4會(huì)從頁(yè)面pool重新獲得或創(chuàng)建page object。因此提交前后同一頁(yè)面的頁(yè)面對(duì)象引用是不一樣的,實(shí)例變量可能會(huì)一樣也不可能一樣。
    leafbutton_ok因此不要在頁(yè)面對(duì)象在定義成員變量(包括頁(yè)面組件對(duì)應(yīng)的成員變量),因?yàn)榭珥?yè)面訪問(wèn)他們總是無(wú)效的有潛在危險(xiǎn)。
    hide上面問(wèn)題的解決方案
    leaf1、使用客戶端持久化需要訪問(wèn)的持久化成員變量,聲明get、set抽象方法,用@Persist("client")注釋。 使用時(shí)應(yīng)判斷get方法是否為null,因?yàn)檫@種持久化方式不會(huì)初始化變量
    leaf2、使用抽象get、set方法,由t4來(lái)實(shí)現(xiàn)。
    hideHiveMind模塊
    leafsession對(duì)象可以在hivemodule.xml中配置
    leafhivemodule.xml存放于WEB-INF/classes/META-INF 目錄下?;?jar文件的META-INF目錄下
    leafhivemodule.xml每個(gè)模塊的id必須唯一,一般以模塊包名作為id
    hideideasession
    hide獲得方式
    leaf1、聲明抽象方法,通過(guò)元數(shù)據(jù)injectState("ObjectName")注釋
    leaf2、聲明抽象方法,在.page中<inject>對(duì)象
    hide判斷存在方式
    hideannotation
    leaf1、聲明抽象方法,該方法命名格式為getXXX()或者isXXX()
    leaf2、使用元數(shù)據(jù)注釋@InjectStateFlag("sessionObj")
    leaf.page聲明<inject type="state-flag" property="userExists" object="sessionObj"/>
    leaf注銷:使用Servicelink組件的restart service。該service刪除sessionObj,并且從定向到首頁(yè)。
    hide安全處理
    leaf1、關(guān)鍵性頁(yè)面應(yīng)該在頁(yè)面中進(jìn)行用戶驗(yàn)證,防止匿名用戶訪問(wèn)。頁(yè)面對(duì)象實(shí)現(xiàn)PageValidateListener接口。
    hide2、htmlA-〉login-〉htmlA方式解決方案
    leaf該頁(yè)面類實(shí)現(xiàn)IExternalPage,該接口可接受參數(shù)
    hide參數(shù)維護(hù)
    hideidea客戶端保存參數(shù)(推薦)
    leaf1、使用Hidden組件,并提供該屬的get、set方法實(shí)現(xiàn)
    leaf2、使用元數(shù)據(jù)@Persist("client"),不能夠聲明abstract的set、get方法
    leafsession保存參數(shù)
    hidesnippets
    hide默認(rèn)表達(dá)式
    leaf.html中為literal
    hide.page中為OGNL
    leafproperty access
    leafmathematical expressions
    leafmethod invocations
    leafreference static fields of public classes
    leafcreate new objects, including lists and maps
    leafURL中的sp,t3叫服務(wù)參數(shù)、t4叫監(jiān)聽(tīng)參數(shù)
    hidepage對(duì)象查詢
    leaf1、.page中聲明
    leaf2、在.application聲明org.apache.tapestry.page-class-packages中查找(推薦)
    hide特殊頁(yè)面組件
    leaf1、$remove$,刪除該html元素(即僅去掉某元素)
    leaf2、$content$,只生成該元素標(biāo)簽間的的html code, 該元素以外其它元素忽略去掉(即僅保留某元素標(biāo)簽內(nèi)的內(nèi)容)
    leafideat4通過(guò)無(wú)參的構(gòu)造器來(lái)創(chuàng)建對(duì)象
    hide國(guó)際化
    hidehtml中使用技巧
    leaf1、<span key="hello">Hello</span>指名說(shuō)用字典key
    leaf2、必須為<span>標(biāo)簽,且key自不必加前綴(如message:,OGNL:)
    leaf3、組件需要國(guó)際化,組件的參數(shù)(具體看文檔)使用“massage:key”表達(dá)式。
    leaf不同地區(qū)的頁(yè)面風(fēng)格,以XXX_CN.html這種方式命名
    hide字典文件
    leaf1、每個(gè)page可以擁有一個(gè)poperties
    leaf2、在WEB-INF下建立${servletname}.properties,所有page共享
    hide自定義組件
    leaf組件配置.jwc文件推薦最合理是放在WEB-INF下
    hidecontrib中的控件的使用
    leaf<library id="contrib" specification-path="/org/apache/tapestry/contrib/Contrib.library"/>
    hideinput校驗(yàn)
    leaf推薦使用writer.beginEmpty("input")
    leaf使用writer.begin("input")和writer.end()
    hiderewinding(重繞),可以理解為刷新
    leafform.isRewinding()
    leafcycle.isRewinding()
    hide參數(shù)
    hide組件參數(shù)初始化
    leaf.jwc中<parameter>設(shè)置初始化
    leaffinishLoad()方法中初始化
    hide參數(shù)類型
    leafformal:是被定義在組件規(guī)范中的組件參數(shù)。每個(gè)formal parameter有一個(gè)特定(區(qū)分大小寫(xiě))的名稱,并且被標(biāo)為required或者optional。
    leafinforma:是Html元素的屬性參數(shù)。(支持ognl表達(dá)式)
    leaf名字唯一,且通過(guò)抽象set、get方法訪問(wèn)
    hide兩種自定義組件方式
    hide1、使用模版
    leaf其類應(yīng)繼承自BaseComponent
    hide2、使用java code render(無(wú)模版)
    leaf其類應(yīng)繼承自AbstractComponent實(shí)現(xiàn)renderComponent()
    leaf在renderComponent()中應(yīng)合理調(diào)用renderInformalParameters() 、 renderBody()等,來(lái)render組件標(biāo)簽的informal參數(shù) 和body。
    leaf在renderComponent()中設(shè)置屬性,應(yīng)檢查該屬性參數(shù)是否綁定if (isParameterBound("title"))writer.attribute("title", getTitle());
    hide.jwc應(yīng)指明的5個(gè)特征
    leaf1、組件類(無(wú),這表明已在.library中申明)
    leaf2、該組件是否能使用body(必須)
    leaf3、參數(shù)的名稱和類型
    leaf4、是否允許informal參數(shù)(必須)
    leaf5、保留參數(shù)(即informal參數(shù)不能用的參數(shù)名)
    hide引用組件方式
    leaf1.在html總使用“@XXX”
    leaf2、在.page或.jwc中使用<component>將組件類型和jwcid綁定
    hide組件.jwc查詢先后路徑
    hide1、.application的<component-type>指定的路徑
    leaf適合無(wú)模板組件
    hide2、.application所在文件夾,一般就是WEB-INF(推薦,無(wú)須配置)
    leaf適合所有組件
    hide3、WEB-INF下的t4的servlet-name文件夾(無(wú)須配置)
    leaf若在servlet-name文件夾,適合所有組件
    leaf若在servlet-name文件夾的子文件夾,僅適合無(wú)模板組件
    hide4、context的根目錄(無(wú)須配置)
    leaf適合所有組件
    hide組件.html查詢路徑(與.jwc同一目錄)
    leaf1、WEB-INF目錄
    leaf2、context根目錄
    hide如何使用組件庫(kù)
    hide通過(guò)library引用
    leaf1、.application的<library>指明.library“相對(duì)”于.application的路徑,以及l(fā)ibID。例如classes/com/aaa/bbb/XXX.library
    leaf2、.library中指明組件類的包名 <meta key="org.apache.tapestry.component-class-packages" value="aa.bb.cc"/>
    leaf3、.library的<component-type>指明.jwc“相對(duì)”于.library的路徑,以及設(shè)置組件類型XXX(即組件別名);若.jwc,.library作同一目錄跳過(guò)此步驟(默認(rèn)為.jwc文件名).
    leaf4、在html通過(guò)@libID:XXX調(diào)用,在.page中通過(guò)<component id="box" type="libID:XXX"/>
    hide通過(guò)application引用
    leaf1、.application中<component-type〉指明.jwc“相對(duì)”于.application的路徑,以及設(shè)置組件類型XXX(即組件別名);
    hide頁(yè)面
    hide頁(yè)面html模版
    hide搜索路徑
    leaf1、.page同一目錄
    leaf2、context根目錄
    hide頁(yè)面配置
    hide綁定方式
    leaf1、靜態(tài)綁定:即只讀,綁定的值在組件規(guī)范中指定
    leaf2、動(dòng)態(tài)綁定:組件需要的時(shí)候,動(dòng)態(tài)綁定通過(guò)其指定的JavaBean獲得值
    hide頁(yè)面對(duì)象
    leaf在page文件中聲明屬性,可以不必在java文件中聲明以及其get、set方法
    leaft4默認(rèn)getXXX()抽象方法中的XXX為頁(yè)面屬性,.page不用聲明,并使用@InitialValue("value")賦初值.
    hide頁(yè)面對(duì)象實(shí)例會(huì)被緩存(有潛在非法訪問(wèn)問(wèn)題),解決方法:
    leaf覆蓋initialize()方法,初始化實(shí)例變量。(在放入緩存池時(shí)天會(huì)調(diào)用initialize())
    leaf在.page中聲明實(shí)例變量,.java聲明get\set方法(可有可無(wú)),t4自動(dòng)生成代碼初始化
    leaf實(shí)現(xiàn)PageBeginRenderListener接口,在頁(yè)面render之前初始化參數(shù),可防止空指針異常
    hide獲得轉(zhuǎn)頁(yè)頁(yè)面對(duì)象
    leaf.page不用任何聲明,.java提供抽象方法和元數(shù)據(jù)
    leaf.page中inject頁(yè)面屬性,.java中提供抽象方法
    hide查找class順序
    leaffull-1As indicated in the page specification
    leaffull-2searching the packages listed in the application specification
    leaffull-3The application specification's org.apache.tapestry.default-page-class property
    leaffull-4The global property org.apache.tapestry.default-page-class
    hide4種監(jiān)聽(tīng)方法
    leafpublic type method(parameters)
    leafpublic type method(IRequestCycle cycle, parameters)
    leafpublic type method()
    leafpublic type method(IRequestCycle cycle)
    hidesnippets
    leafactivate()不會(huì)立即轉(zhuǎn)頁(yè),它僅保存頁(yè)面對(duì)象引用在IRequestCycle中。listener執(zhí)行結(jié)束后才會(huì)轉(zhuǎn)業(yè)。
    hide使用元數(shù)據(jù)inject頁(yè)面和屬性,可以不用在.page中進(jìn)行聲明
    leaf獲得頁(yè)面使用@injectPage("pageName")
    leaft4中若發(fā)現(xiàn)該類包含一個(gè)未實(shí)現(xiàn)的“getXXX”方法,會(huì)默認(rèn)產(chǎn)生一個(gè)實(shí)例變量XXX。該實(shí)例變量沒(méi)有初始化方法,可以在getXXX()聲明@InitialValue("literal:initValue")解決
    leaf每個(gè)頁(yè)面對(duì)象都報(bào)含一個(gè)Map,保存bean。(沒(méi)有則自動(dòng)創(chuàng)建,返回頁(yè)面池時(shí)bean自動(dòng)銷毀1)若要在.page中獲得一個(gè)已定義的Bean,使用beans前綴調(diào)用。例如:beans.beanId.beanProperty。
    leafFor、Foreach使用時(shí),要在.page中對(duì)<source>集合對(duì)象內(nèi)的元素聲明<property>。以方便t4,生成get、set方法。
    hidetapestry組件
    hideDrectLink與ExternalLink區(qū)別
    leaf1.DirectLink涉及session,它有一個(gè)布爾型參數(shù)stateful來(lái)選擇stateful 和 stateless,默認(rèn)為true即stateful,而ExternalLink僅僅是stateless,不能選擇
    leaf2.DirectLink通過(guò)Listener監(jiān)聽(tīng)方法將參數(shù)“扔”給下一個(gè)頁(yè)面,只要定義了跳轉(zhuǎn)頁(yè)面就OK,參數(shù)自動(dòng)扔到跳轉(zhuǎn)頁(yè)面里。而ExternalLink通過(guò)下一個(gè)頁(yè)面實(shí)現(xiàn)IExternalPage接口及activateExternalPage方法接收參數(shù) DirectLink接收參數(shù)時(shí)要注意,返回值是Void,要符合監(jiān)聽(tīng)方法規(guī)則
    leaf3.DirectLink用DirectService,ExternalLink用ExternalService。另外Form提交用的是DirectService。

    posted on 2006-03-11 08:50 都市淘沙者 閱讀(1098) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲av永久无码精品网站| 精品国产亚洲一区二区在线观看| 日本无卡码免费一区二区三区| 国产青草视频在线观看免费影院| 又粗又硬又黄又爽的免费视频| 亚洲欭美日韩颜射在线二| 91亚洲国产成人久久精品网站| 成人无码区免费A片视频WWW| 午夜成年女人毛片免费观看| 亚洲成av人片一区二区三区| 久久久久亚洲精品无码系列| 亚洲高清中文字幕免费| 一级毛片a免费播放王色| 久久久久久久99精品免费| 成人免费a级毛片| 国产亚洲人成网站在线观看| 亚洲欧洲精品在线| 美女尿口扒开图片免费| 四虎影视成人永久免费观看视频 | 精品久久久久久久久亚洲偷窥女厕| mm1313亚洲国产精品无码试看 | 精品一区二区三区无码免费直播| 91国内免费在线视频| 无码视频免费一区二三区| 亚洲亚洲人成综合网络| 亚洲AV一二三区成人影片| 亚洲第一视频在线观看免费| 色老头永久免费网站| 亚洲人成电影在线播放| 亚洲中文字幕久在线| 久久免费香蕉视频| 免费a级毛片无码a∨蜜芽试看| 久久精品亚洲男人的天堂| 狠狠色香婷婷久久亚洲精品| 中文字幕免费观看全部电影| 成人免费在线观看网站| 亚洲VA成无码人在线观看天堂| 九九精品国产亚洲AV日韩| 精品福利一区二区三区免费视频 | 毛片免费视频播放| 亚洲成色www久久网站夜月|