tapestry5中select的用法

本文介绍了一个使用Apache Tapestry框架实现的Block组件示例。该示例展示了如何通过懒加载初始化Block集合,并根据用户选择显示不同的Block。代码实现了Block的注入、保留和持久化等功能。
java 代码
 
  1. // Copyright 2007 The Apache Software Foundation  
  2. //  
  3. // Licensed under the Apache License, Version 2.0 (the "License");  
  4. // you may not use this file except in compliance with the License.  
  5. // You may obtain a copy of the License at  
  6. //  
  7. //     http://www.apache.org/licenses/LICENSE-2.0  
  8. //  
  9. // Unless required by applicable law or agreed to in writing, software  
  10. // distributed under the License is distributed on an "AS IS" BASIS,  
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
  12. // See the License for the specific language governing permissions and  
  13. // limitations under the License.  
  14.   
  15. package org.qiwen.pages;  
  16.   
  17. import java.util.Map;  
  18.   
  19. import org.apache.tapestry.Block;  
  20. import org.apache.tapestry.annotations.Inject;  
  21. import org.apache.tapestry.annotations.Persist;  
  22. import org.apache.tapestry.annotations.Retain;  
  23. import org.apache.tapestry.ioc.internal.util.CollectionFactory;  
  24.   
  25. public class BlockDemo  
  26. {  
  27.     @Inject  
  28.     private Block _fred;  
  29.   
  30.     @Inject  
  31.     private Block _barney;  
  32.   
  33.     // Blocks not injected until page load, so must lazily initialize the map.  
  34.     @Retain  
  35.     private Map<String, Block> _blocks = null;  
  36.   
  37.     @Persist  
  38.     private String _blockName;  
  39.   
  40.     public Block getBlockToRender()  
  41.     {  
  42.         if (_blocks == null)  
  43.         {  
  44.             _blocks = CollectionFactory.newMap();  
  45.             _blocks.put("fred", _fred);  
  46.             _blocks.put("barney", _barney);  
  47.         }  
  48.   
  49.         return _blocks.get(_blockName);  
  50.     }  
  51.   
  52.     public String getBlockName()  
  53.     {  
  54.         return _blockName;  
  55.     }  
  56.   
  57.     public void setBlockName(String blockName)  
  58.     {  
  59.         _blockName = blockName;  
  60.     }  
  61.   
  62. }  


Html 代码
 
  1. <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">   
  2.       
  3.     <form t:type="Form">  
  4.         <select t:type="Select" t:id="blockName" model="',fred,barney'" onchange="this.form.submit();"/>   
  5.         <label t:type="Label" for="blockName">Block to display</label>  
  6.     </form>  
  7.       
  8.     <p>The block: ${blockToRender}</p>  
  9.           
  10. </html>  
【事件触发一致性】研究多智能体网络如何通过分布式事件驱动控制实现有限时间内的共识(Matlab代码实现)内容概要:本文围绕多智能体网络中的事件触发一致性问题,研究如何通过分布式事件驱动控制实现有限时间内的共识,并提供了相应的Matlab代码实现方案。文中探讨了事件触发机制在降低通信负担、提升系统效率方面的优势,重点分析了多智能体系统在有限时间收敛的一致性控制策略,涉及系统模型构建、触发条件设计、稳定性与收敛性分析等核心技术环节。此外,文档还展示了该技术在航空航天、电力系统、机器人协同、无人机编队等多个前沿领域的潜在应用,体现了其跨学科的研究价值和工程实用性。; 适合人群:具备一定控制理论基础和Matlab编程能力的研究生、科研人员及从事自动化、智能系统、多智能体协同控制等相关领域的工程技术人员。; 使用场景及目标:①用于理解和实现多智能体系统在有限时间内达成一致的分布式控制方法;②为事件触发控制、分布式优化、协同控制等课题提供算法设计与仿真验证的技术参考;③支撑科研项目开发、学术论文复现及工程原型系统搭建; 阅读建议:建议结合文中提供的Matlab代码进行实践操作,重点关注事件触发条件的设计逻辑与系统收敛性证明之间的关系,同时可延伸至其他应用场景进行二次开发与性能优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值