论坛首页 入门技术论坛

java Tapestry5 <select>

浏览 1193 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-03-10  
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> 
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics