tapestry4初级开发指南(编辑修改稿)内容摘要:
width=240水果名称 /td td width=139单价 /td /tr tr jwcid=fruitListLoop align=center tdspan jwcid=fruitName名称 /span/td tdspan jwcid=fruitPrice单价 /span元 /td /tr /table /body /html 为了能够在登陆之后,跳转到商品目录页面 FirstPage,我们需要对 进行修改: public abstract class Home extends BasePage { //用户名 public abstract String getUsername()。 //密码 public abstract String getPassword()。 @InjectPage(Shop) public abstract FirstPage getShopPage()。 //登陆表单的监听方法 public IPage loginSubmit(IRequestCycle cycle) { (())。 (())。 return this. getShopPage ()。 } } 注意监听方法 loginSubmit 的返回参数,在这里,直接返回 FirstPage 页面的实例即可跳转到 FirstPage 页面。 @InjectPage(Shop)是 新提供的 annotation 包中的一个annotation。 凡是该 annotation 所声明的抽象 getter 方法,均会获取到指定页面的实例。 在这里就获取到 FirstPage 页面的实例。 在输入用户名和密码之后,我们就可以跳转到新页面了: 成都麦柯 技术开发二部 成都麦柯系统集成有限公司 20 3) 购买水果 为了购买水果,我们需要为 Shop 页面的每个水果名称添加一个链接,一旦用户点击该种水果,我 们就跳转到一个水果购买页面,该页面显示了水果的详细信息并且可以让用户输入购买的数量。 为 Shop 页面的每个水果名称添加链接: 修改 : package。 import。 import。 import。 import。 public abstract class Shop extends BasePage { @InjectPage(BuyFruit) public abstract BuyFruit getBuyFruitPage()。 public List getFruitList() { return ()。 } public IPage buyFruit(Integer ig) { BuyFruit page = ()。 (ig)。 return page。 } } 修改 : pagespecification property name=fruit/ ponent id=fruitListLoop type=Foreach binding name=source value=fruitList/ binding name=value value=fruit/ binding name=element value=literal:tr/ /ponent 成都麦柯 技术开发二部 成都麦柯系统集成有限公司 21 ponent id=fruitName type=Insert binding name=value value=/ /ponent ponent id=fruitPrice type=Insert binding name=value value=/ /ponent ponent id=buyFruitLink type=DirectLink binding name=listener value=listener:buyFruit/ binding name=parameters value=/ /ponent /pagespecification 修改 : html body table width=419 border=1 tr align=center td width=240水果名称 /td td width=139单价 /td /tr tr jwcid=fruitListLoop align=center tda href= jwcid=buyFruitLinkspan jwcid=fruitName名 称/span/a/td tdspan jwcid=fruitPrice单价 /span元 /td /tr /table /body /html 从上面的修改可以看出,我们添加了一个 DirectLink 组件,该组件的监听方法是 public IPage buyFruit(Integer ig),并传递参数 binding name=parameters value=/。 熟悉 T3的朋友会发现, T4 中监听方法的用法有很大区别,现 在我们看到的是监听方法的另外一种用法。 直接将 DirectLink 传递的输入参数作为其监听方法的参数。 一旦 DirectLink 触发监听成都麦柯 技术开发二部 成都麦柯系统集成有限公司 22 方法,我们直接就可以从监听方法的输入参数中获取到被传递过来的。 当然,监听方法的输入参数是与 类型相对应的。 public IPage buyFruit(Integer ig) { BuyFruit page = ()。 (ig)。 return page。 } 在 这个监听方法中,我们获取到了 DirectLink 传递的参数,并且我们向下一个页面传递水果的 ID 值,在下一个页面,我们就可以根据这个 ID 值,查找到对应的水果详细信息。 水果详细信息页面: package。 import。 import。 import。 public class BuyFruit extends BasePage { private Integer fruitId。 private int buyMount。 @Override protected void initialize() { fruitId = null。 buyMount = 0。 } // 获取水果详细信息 public Fruit getFruitDetail() { return (())。 } // 购买水果 @SuppressWarnings(deprecation) public String buyFruitSubmit() { FruitCart fc = new FruitCart()。 Fruit f = (())。 (f)。 (())。 (() * ())。 MyVisit visit = (MyVisit)()。 ListFruitCart list = ()。 if(list == null) { list = new ArrayListFruitCart()。 } (fc)。 (list)。 return Cart。 成都麦柯 技术开发二部 成都麦柯系统集成有限公司 23 } // 重新选择水果 public String backShopSubmit() { return Shop。 } public Integer getFruitId() { return fruitId。 } public void setFruitId(Integer fruitId) { = fruitId。 } public int getBuyMount() { return buyMount。 } public void setBuyMount(int buyMount) { = buyMount。 } } pagespecification ponent id=fruitName type=Insert binding name=value value=/ /ponent ponent id=fruitPrice type=Insert binding name=value value=/ /ponent ponent id=fruitMount type=Insert binding name=value value=/ /ponent ponent id=buyFruitForm type=Form binding name=clientValidationEnabled value=true/ /ponent ponent id=fruitIdHidden type=Hidden binding name=value value=fruitId/ /ponent ponent id=fruitBuyMount type=TextField binding name=value value=buyMount/ binding name=translator value=translator:number/ binding name=displayName value=literal:购买数量 / /ponent ponent id=buyFruitSubmit type=Submit binding name=listener value=listener:buyFruitSubmit/ 成都麦柯 技术开发二部 成都麦柯系统集成有限公司 24 /ponent ponent id=backShopSubmit type=Submit binding name=listener value=listener:backShopSubmit/ /ponent /pagespecification html body jwcid=@Body form jwcid=buyFruitForm span jwcid=fruitIdHidden/ table width=242 border=1 tr align=center td width=121水果名称 /td td width=105span jwcid=fruitName名称 /span/td /tr tr align=center td单价 /td tdspan jwcid=fruitPrice/span元 /td /tr tr align=center td存货 /td tdspan jwcid=fruitMount20/span斤 /td /tr tr align=center td购买数量 /td tdinput type=text jwcid=fruitBuyMount size=3 length=3/斤 /td /tr tr align=center。tapestry4初级开发指南(编辑修改稿)
相关推荐
线,连接美好未来”的品牌愿望。 TCL 智能楼宇事业部 通过近几年的迅速发展,现已成为我国最大的的综合布线生产厂商之一。 作为国内领先的综合布线产品生产厂家,其生产的布线产品全部经过了 信息产业部测试,为优质产品,并多次在全国各地的质量监督局的抽检、产品评定等活动中,名列第一。 “因为有梦想,我们披星带月,风雨兼程”。 我们将以务实态度,努力实现对消费者应用完整性的尊重。 我们将不断进取
866”,拨通后再输入“*# 801”即可,此时外线听音乐,“ 801”分机响铃,摘机即可与外线通话。 4. 1. 3 呼出限制 A.限制国际长途 格式:*# 4n30 ( n 指分机号的未位, n = 1,代表 801 分机, n = 2,代表 802 分机,„依此类推)。 例如:限制 803 分机不准打国际长途,则应在 801 总机上输入命令“*# 4330”,听到“嘟„”一长音后
suite elle pourra regarder un peu la t233。 l233。 mais pas trop tard. ※ 妈妈叫女儿吃饭,洗碗,可以看会电视,但是不可以太晚。 选 ensuite 6 40. La recette de la cr234。 pe : mettez dans un bol la farine, les œufs, du sel et de la
5脚: —— 右声道负反馈外接电容 6脚: —— 电源滤波 7脚: 12V—— 右。
小学生合格的习作。 六、教学难点: 培养课前预习课文的好习惯。 抓住知识重点,设计多样习题供学生训练。 逐步提高语言表达能力,为学生的终身发展打下基础。 培养自主学习能力。 联系阅读和生活实际,激发学生常练笔。 七、教学措施: 激趣,倡导自主、合作、探究的学习方法。 根据语文课程和儿童身心发展的需要,精心设计作业、编排语文实践活动。 3 提出课前预习要求,布置课前预习。 善于运用现代教学模式
转向、制动系统 悬挂、牵引装置 其他 电气设备、附件与仪表 材料、原材料、辅助材料 制造用设备、仪器 制造工艺 运行与维修 机械工厂、车间 拖拉机类型 轮式拖拉机 链轨式(履带式)拖拉机 自动底盘拖拉机 电力拖拉机 液压驱动拖拉机 手扶拖拉机 组合式拖拉机 专用拖拉机 水田拖拉机 教 拖拉机(机耕船) 山地拖拉机 园艺拖拉机 其他 其他 S22 农业机械及农具 S220 一般性问题 理论 设计