`
zhangrong108
  • 浏览: 206868 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java Tapestry5 <select>

阅读更多
16.public class Brand { 
17. 
18.    private String id; 
19.    private String description; 
20.     
21.    public Brand() {} 
22. 
23.    public Brand(String id, String description) { 
24.        this.id = id; 
25.        this.description = description; 
26.    }    
27. 
28.    public String getId() { 
29.        return id; 
30.    } 
31. 
32.    public String getDescription() { 
33.        return description; 
34.    } 
35.     
36.} 
37. 
38. 
39.Test.java 
40. 
41.public class Test { 
42. 
43.    @Persist 
44.    private Brand brand; 
45. 
46.    @Persist 
47.    private List<Brand> brands; 
48.     
49.    public Brand getBrand() { 
50.        return brand; 
51.    } 
52. 
53.    public void setBrand(Brand brand) { 
54.        this.brand = brand; 
55.    } 
56.     
57.    private List<Brand> getBrands() 
58.    { 
59.        if(brands == null) { 
60.            brands = new ArrayList<Brand>(); 
61.            brands.add(new Brand("1", "Brand 1")); 
62.            brands.add(new Brand("2", "Brand 2")); 
63.            brands.add(new Brand("3", "Brand 3")); 
64.            brands.add(new Brand("4", "Brand 4")); 
65.        } 
66.         
67.        return brands; 
68.    } 
69.     
70.    public BrandSelectModel getBrandSelectModel() { 
71.        return new BrandSelectModel(getBrands()); 
72.    } 
73. 
74.    public BrandValueEncoder getBrandValueEncoder() { 
75.        return new BrandValueEncoder(getBrands()); 
76.    } 
77.     
78.    public class BrandValueEncoder implements ValueEncoder<Brand> { 
79.         
80.        private List<Brand> brands; 
81.         
82.        public BrandValueEncoder(List<Brand> brands) { 
83.            this.brands = brands; 
84.        } 
85. 
86.        public String toClient(Brand brand) { 
87.            return brand.getDescription(); 
88.        } 
89. 
90.        public Brand toValue(String string) { 
91.            for(Brand brand : brands) { 
92.     
93.if(brand.getDescription().equals(string)) { 
94.                    return brand; 
95.                } 
96.            } 
97.            return null; 
98.        } 
99. 
100.    } 
101.     
102.    public class BrandSelectModel implements SelectModel { 
103.         
104.        private List<Brand> brands; 
105.         
106.        public BrandSelectModel(List<Brand> brands) { 
107.            this.brands = brands; 
108.        } 
109.         
110.        public List<OptionGroupModel> getOptionGroups() { 
111.            return null; 
112.        } 
113. 
114.        public List<OptionModel> getOptions() { 
115.            List<OptionModel> optionModelList = new 
116.ArrayList<OptionModel>(); 
117.            for(Brand brand: brands) { 
118.                optionModelList.add( 
119.                    new OptionModelImpl( 
120.                        brand.getDescription(),  
121.                        false,  
122.                        brand,  
123.                        new String[0] 
124.                    ) 
125.                ); 
126.            } 
127.            return optionModelList; 
128.        } 
129. 
130.    } 
131.     
132.} 
xml 代码

1.Test.html 
2. 
3.<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> 
4.<t:form> 
5. 
6.    <select t:type="select" t:id="brand" 
7.        value="brand" model="brandSelectModel" 
8.encoder="brandValueEncoder" 
9.        onchange="this.form.submit();" /> 
10. 
11.    <br/> 
12.     
13.    <t:if test="brand"> 
14.        ${brand.description} 
15.    </t:if> 
16. 
17.</t:form> 
18.</html> 
分享到:
评论

相关推荐

    tapestry页面编辑组件

    Tapestry是一个强大的Java web应用程序框架,由Apache软件基金会维护。它以其组件化、类型安全和高度可扩展性而闻名。在本篇文章中,我们将深入探讨Tapestry的页面编辑组件,以及如何利用这些组件创建交互式的用户...

    Tapestry字典0.1.pdf

    - **示例**: `Map&lt;String, Object&gt; validationRules = new HashMap&lt;&gt;();` - **应用场景**: 动态设置校验规则。 **2.2 变量自动转换/校验变量类型** - **自动转换**: 使用`@Property`注解指定字段类型,Tapestry会...

    tapestry4.0简易教程

    - **具体实践:** 使用`&lt;t:select&gt;`标签,并为其提供选项列表。 **1.6 使用日历工具(DatePicker)** - **概念理解:** 日历工具允许用户选择日期。 - **具体实践:** 使用`&lt;t:datePicker&gt;`标签来实现日期的选择...

    Tapestry5使用文档

    - `void onActivate(List&lt;Object&gt; list)`:类间数据传递方法,用于传值页面,可将需要传递的数据放入 List 中,并传递给接收页面的 `paramList`。 - `Request getRequest()`:获取请求对象 Request。 - `Session ...

    Tapestry 5.1 实例教程

    - 示例:`&lt;div data-display="${person.name}"&gt;`,其中 `${person.name}` 是绑定表达式,`person.name` 是页面类中的属性。 ##### 3. 使用组件 - **组件**:Tapestry 中的基本构建单元,类似于页面类,但更专注于...

    Tapestry字典

    Tapestry允许在HTML中使用组件和属性,通过简单的标签语法,如`&lt;t:component&gt;`,可以在HTML页面中动态插入和配置组件。 **1.5 使用下拉列表框(combobox)** 下拉列表框在Tapestry中被称为`ComboBox`,用于提供一个...

    Spring-WebFlow入门中文文档

    &lt;transition on="select" to="enterDetails" /&gt; &lt;/view-state&gt; &lt;view-state id="enterDetails" view="enterDetails.jsp"&gt; &lt;transition on="submit" to="confirmation" /&gt; &lt;/view-state&gt; &lt;end-state id=...

    struts2详细教程

    - `&lt;s:select&gt;`:用于创建下拉列表。 通过使用这些标签,开发者可以轻松地创建出美观且功能齐全的用户界面。 #### 七、结论 总的来说,**Struts2**不仅继承了**WebWork**的强大功能,还吸取了**Struts1**的经验...

    Spring-Reference_zh_CN(Spring中文参考手册)

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.6.1. @Transactional 有关的设置 9.5.7. 插入事务操作 9.5.8. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用 ...

    Spring中文帮助文档

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. ...

    Spring API

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用TransactionTemplate 9.6.2. ...

    spring chm文档

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用 TransactionTemplate 9.6.2. 使用 ...

    Spring 2.0 开发参考手册

    9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. 结合AspectJ使用 @Transactional 9.6. 编程式事务管理 9.6.1. 使用 TransactionTemplate 9.6.2. 使用 ...

Global site tag (gtag.js) - Google Analytics