`
bclxz520
  • 浏览: 66154 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

tapestry5中select的用法

阅读更多
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>  
分享到:
评论
13 楼 javadev 2007-05-23  
现在的框架太多了,精通几个就够用了,学那么多太类了。
12 楼 sdyjmc 2007-05-23  
我发现在使用encoder的时候会导致select选不中的问题:
<select t:type="select" t:id="user" name="user" value="userName" model="usersModel" encoder="usersEncoder" onChange="this.form.submit();" style="width:300"></select>

public ValueEncoder getUsersEncoder() {
return new UserValueEncoder(getUsers());
}

public class UserValueEncoder implements ValueEncoder {
private List<User> Users;

public UserValueEncoder(List<User> Users) {
this.Users = Users;
}

public String toClient(Object User) {
/*return ((User) User).getName();*/
return (String)User;
}

public User toValue(String name) {
for (User User : Users) {
if (User.getName().equals(name)) {
return User;
}
}
System.out.println("null");
return null;

}
}

如果不使用encoder,提交后的页面会显示上次选择的option,对于multiple="true"的情况下怎样default select?
11 楼 sdyjmc 2007-05-23  
public SelectModel getUsersModel() {
return new UsersModel(getUsers());
}

public class UsersModel implements SelectModel {
private List<User> Users;

public UsersModel(List<User> Users) {
this.Users = Users;
}

public List getOptionGroups() {
return null;
}

public List getOptions() {
List optionModelList = new ArrayList();
for (User User : Users) {
optionModelList.add(new OptionModelImpl(User.getName(), false,
User, new String[0]));
}
return optionModelList;
}
}
10 楼 jamesby 2007-04-02  
dengyin2000 写道
jamesby 写道
引用
Model的实现类是可以自己实现的。



是可以自己实现,不过tapestry对这个基本的组件总该有个实现吧,有些奇怪。


当然有。
楼上,给个地址,或者给个简单的用法,谢谢!
应该同checkbox差不多吧
9 楼 dengyin2000 2007-04-02  
jamesby 写道
引用
Model的实现类是可以自己实现的。



是可以自己实现,不过tapestry对这个基本的组件总该有个实现吧,有些奇怪。


当然有。
8 楼 jamesby 2007-04-02  
引用
Model的实现类是可以自己实现的。



是可以自己实现,不过tapestry对这个基本的组件总该有个实现吧,有些奇怪。
7 楼 KorbenZhang 2007-04-02  
Model的实现类是可以自己实现的。
6 楼 jamesby 2007-04-01  
在http://tapestry.apache.org/tapestry5/tapestry-core/component-parameters.html位置没有找到radio组件(单选框)

只有如下组件,为什么?
AbstractField
AbstractTextField
ActionLink
Any
BeanEditForm
Checkbox
Delegate
Errors
Form
Grid
GridCell
GridColumns
GridPager
GridRows
If
Img
Label
Loop
Output
OutputRaw
PageLink
PasswordField
RenderObject
Select
Submit
TextArea
TextField
5 楼 jamesby 2007-04-01  
	public SelectModel getFromModel() {

		List<OptionModel> options = new ArrayList<OptionModel>();
		OptionModel blank = new OptionModelImpl("", false, "");
		OptionModel beiJing = new OptionModelImpl("BeiJing", false, "1");
		OptionModel shangHai = new OptionModelImpl("ShangHai", false, "2");
		OptionModel tianJin = new OptionModelImpl("TianJin", false, "3");
		options.add(blank);
		options.add(beiJing);
		options.add(shangHai);
		options.add(tianJin);
		return new SelectModelImpl(null, options);
	}


    <select t:type="select" model="fromModel" value="user.from"/>


不过搞不清楚为什么值只能是String类型而不能是Integer类型。
默认的encoder是org.apache.tapestry.ValueEncoder
不会对于Integer类型的value需要自己写一个ValueEncoder吧。
4 楼 pengzhan 2007-03-13  
美女,如何动态的控制select中的内容呀???????????
3 楼 Linuxboy 2007-02-28  
还要在html模板中加上如下语句:
<t:block id="fred">Block fred.</t:block>
<t:block id="barney">Block barney.</t:block>

这个程序才能正常运行。
2 楼 bclxz520 2007-02-28  
我是女的好不好
1 楼 liigo 2007-02-28  
老兄紧跟时代潮流啊,Tapestry5好。

相关推荐

    Tapestry5使用文档

    此外,还介绍了 **弹出层** 的使用方法以及 **T5 组件解析过程**,帮助开发者更好地理解和应用 Tapestry5 的各种特性。通过对以上知识点的掌握,开发者能够更加熟练地使用 Tapestry5 进行 Web 应用程序的开发。

    tapestry4.0简易教程

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

    Tapestry字典

    在Tapestry中,页面或组件的初始化通常在`init()`方法中进行,该方法在页面加载时被调用,用于设置初始状态和配置。 **1.4 在html页面装配** Tapestry允许在HTML中使用组件和属性,通过简单的标签语法,如`...

    Tapestry字典0.1.pdf

    - **实现**: 使用`&lt;tapestry:select&gt;`标签。 - **属性**: `model`, `options`, `optionLabel`, `optionValue`等。 **1.6 使用日历工具 (DatePicker)** - **功能**: 用于让用户选择日期。 - **实现**: 使用`...

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

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...

    Spring中文帮助文档

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    Spring-WebFlow入门中文文档

    3. **技术无关性**:无论你使用 Struts、Spring MVC、Tapestry、JSP 还是 Portlets,都可以轻松集成 Spring Web Flow 来管理页面流程。 4. **流程管理**:Spring Web Flow 自动管理流程的生命周期,包括事件触发、...

    spring chm文档

    6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. ...

    Spring API

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    Spring 2.0 开发参考手册

    6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 7.2.3. AspectJ切入点表达式 7.2.4. ...

Global site tag (gtag.js) - Google Analytics