首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Tapestry组件使用总结(Form内组件)(转)

2012-12-18 
Tapestry组件运用总结(Form内组件)(转)Tapestry组件运用总结(Form内组件)tapestry 2008-11-10 14:26:40 阅

Tapestry组件运用总结(Form内组件)(转)
Tapestry组件运用总结(Form内组件)

tapestry 2008-11-10 14:26:40 阅读43 评论0   字号:大中小 订阅
Tapestry组件运用总结(Form内组件)
2008年10月29日 星期三 15:09
A) Insert 组件
e.g.
   


     页面表现时,将会到页面类中寻找getUser().getName()方法获取初值并输出
     相当于在页面上显示数据.

B) TextField 组件
e.g.
    

     页面表现时,将会到页面类中寻找getUsername()方法获取初值
     *如果是修改信息页面,通常初始值要在页面表现之前由setUsername()手动设置从数据库中读取出来的值
     表单提交时,通过setUsername()写入新值(即用户输入值),在类中通过getUsername()获取新值
     相当于在修改个人信息时,首先读出用户名赋予文本框(用户名)初值,用户修改时填入新值,后台获取之
     *Hidden属性区分是普通文本输入框(默认false)和密码输入框(hidden="ognl:true")
     readonly属性设置只读 readonly="true"为只读(后台可读取)
     *disabled属性设置是否可写 diabled="true"为不可写(后台也不可读取)

C) TextArea 组件
e.g.
    

     页面表现时,将会到页面类中寻找getContent()方法获取初值
     工作原理同TextField

D) RadioGroup/Radio 组件
e.g.
    

     RadioGroup为每一个Radio提供一个唯一的ID。RadioGroup跟踪当前被选中的属性值,并且只有一个Radio能够被选中.
     页面提交时,RadioGroup组件就利用OGNL表达式向headImage字段写入被选中的Radio组件的value参数值.
     页面表现时(修改页面),将会到页面类中寻找getHeadImage()方法获取初值,然后寻找@Radio组件中与其相同的组件并勾选上.

E) PropertySelection 组件
     使用PropertySelection组件必须要构造一个类来实现IPropertySelectionModel接口,并且重写该接口的5个方法.
     public int getOptionCount() //提供下拉菜单的长度
     public Object getOption(int index) //提供select标签的option
     public String getLabel(int index) //提供select标签的Label值,也就是下拉菜单显示的内容
     public String getValue(int index) //提供select标签的value值
     public Object translateValue(String value) //selected后的返回值,value值未必就是我们需要的返回值,可以在这个方法里面对返回的value做对应的转换或修改.
e.g.1. 性别下拉框
    

Java代码 复制代码

  
       <option>心情日记</option>
       <option>情感天地</option>
       <option>生活感触</option>
     </select>
Java代码 复制代码

  

           ...
         </form>
       2. 在submit类型组件中声明.
         <input type="submit" jwcid="onLogin@Submit" listener="listener:onLogin" value="发表"/>或者
         <span jwcid="@ImageSubmit" image="..." listener="listener:onLogin"><img src="..." width="" height=""/></span>
       前一种方式当Form中只要有submit就会触发监听方法,后一种方式是Form中有多个submit,各自实现不同的监听方法.

G) Foreach 组件
e.g.
    

     循环组件,遍历source参数,在表现其内容前更新value参数,将Foreach组件所包含的内容重复表现,其中可以通过value参数获取所需显示内容.
     本例中,页面表现时通过getLogList()方法获取日志列表,循环取出其中数据更新item(日志对象)并予以显示.其中item需要在页面规范(.page)文件中声明:
     <property name="item"/>
     *class参数用来寻找类似CSS的文件对Foreach进行修饰.
     Foreach组件: condition='ognl:item.sex.equals("1")'>先生</span> <span jwcid="@Conditional" condition='ognl:item.sex.equals("0")'>女士</span>

     conditional参数为true时运行Conditional组件中的HTML模板内容.
     在Tapestry4.0以后就不支持该组件了, 可以使用其他组件来实现:
    1. Contrib:Choose和Contrib:When
   

    2. If组件
    <span jwcid="@If" condition='ognl:item.sex.equals("1")'>先生</span>
     <span jwcid="@If" condition='ognl:item.sex.equals("0")'>女士</span>

热点排行