第三十八讲:tapestry Ajax 关联下拉选框(select)组件
生活随笔
收集整理的這篇文章主要介紹了
第三十八讲:tapestry Ajax 关联下拉选框(select)组件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
源碼如下:
AJAXSelect1.java
/** * 項目名稱:TapestryStart * 開發模式:Maven+Tapestry5.x+Tapestry-hibernate+Mysql * 網址: http://www.flywind.org * 版本:1.0 * 編寫:飛風 * 時間:2012-02-29 */ package com.tapestry.app.pages; import org.apache.tapestry5.ComponentResources; import org.apache.tapestry5.annotations.InjectComponent; import org.apache.tapestry5.annotations.InjectPage; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.corelib.components.Zone; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.services.Request; public class AJAXSelect1 { static final private String[] ALL_MAKES = new String[] { "梅州市", "河源市" }; static final private String[] NO_MODELS = new String[] {}; static final private String[] MEIZHOU_MODELS = new String[] { "五華縣", "興寧縣"}; static final private String[] HEYUAN_MODELS = new String[] { "紫金縣", "龍川縣" }; @Property private String areaMake; @Property private String cithModel; @Property private String keywords; @Property private String[] areaMakes; @Property @SuppressWarnings("unused") private String[] cithModels; @InjectPage private AJAXSelect2 page2; @InjectComponent private Zone cithModelZone; @Inject private ComponentResources componentResources; @Inject private Request request; void setupRender() { if (areaMakes == null) { areaMakes = ALL_MAKES; cithModels = NO_MODELS; } } Object onValueChangedFromAreaMake(String areaMake) { this.areaMake = areaMake; areaMakes = ALL_MAKES; if (areaMake == null) { cithModels = NO_MODELS; } else if (areaMake.equals(areaMakes[0])) { cithModels = MEIZHOU_MODELS; } else if (areaMake.equals(areaMakes[1])) { cithModels = HEYUAN_MODELS; } else { cithModels = NO_MODELS; } cithModel = null; return request.isXHR() ? cithModelZone.getBody() : null; } Object onSuccess() { page2.set(areaMake, cithModel, keywords); componentResources.discardPersistentFieldChanges(); return page2; } Object onGoHome() { componentResources.discardPersistentFieldChanges(); return Index.class; } }AJAXSelect1.tml
<html t:type="layout" title="tapestryStart Index" ?t:sidebarTitle="Framework Version"? xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter"> <form t:type="form" t:id="searchCriteria"> <t:label for="areaMake"/>: <select t:type="select" t:id="areaMake" t:model="areaMakes" t:zone="cithModelZone" t:blankOption="ALWAYS" t:blankLabel="請選擇" t:validate="required"/> <t:zone t:id="cithModelZone" id="cithModelZone" style="display: inline;"> <t:label for="cithModel"/>: <select t:type="select" t:id="cithModel" t:model="cithModels"? t:blankOption="ALWAYS" t:blankLabel="請選擇" t:validate="required"/> </t:zone> 說明: <input t:type="TextField" t:id="keywords"/> (optional)<br/>? <input type="submit" value="提交"/> <t:errors/> </form><br/> </html>AJAXSelect2.java
/** * 項目名稱:TapestryStart * 開發模式:Maven+Tapestry5.x+Tapestry-hibernate+Mysql * 網址: http://www.flywind.org * 版本:1.0 * 編寫:飛風 * 時間:2012-02-29 */ package com.tapestry.app.pages; import org.apache.tapestry5.PersistenceConstants; import org.apache.tapestry5.annotations.Persist; import org.apache.tapestry5.annotations.Property; public class AJAXSelect2 { @Persist(PersistenceConstants.FLASH) @Property @SuppressWarnings("unused") private String areaMake; @Persist(PersistenceConstants.FLASH) @Property @SuppressWarnings("unused") private String cithModel; @Persist(PersistenceConstants.FLASH) @Property @SuppressWarnings("unused") private String keyWords; public void set(String areaMake, String cithModel, String keyWords) { this.areaMake = areaMake; this.cithModel = cithModel; this.keyWords = keyWords; } }AJAXSelect2.tml
<html t:type="layout" title="tapestryStart Index" ?t:sidebarTitle="Framework Version"? xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter"> 您選擇的地區是: ${areaMake} ${cithModel} ${keyWords}!<br/><br/> </html>轉載于:https://my.oschina.net/shootercn/blog/55513
總結
以上是生活随笔為你收集整理的第三十八讲:tapestry Ajax 关联下拉选框(select)组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tr命令学习
- 下一篇: Lync客户端导入联系人