Tapestry框架使用方法技巧总结

一、弹出窗口页面:

data-openerfield="${openerField}" data-needupdate="true">
  • data-openerfield --父页面需要赋值的文本域的id 必选 -- 可以写死,可以传值
接收方法:
@Property
@ActivationRequestParameter("openerField")
private String openerField;

  • data-needupdate="true" --需要更新父页面的zone 可选 默认false
  • data-radio="true" --是否单选 可选 默认false多选
  • data-separator --返回值分隔符,可选 默认分号“; ”,但不能用逗号“,”
  • data-adds --除了id外添加另外一个字段名称传输给父页面
--其它data参数请不要修改

添加数据方法:
如data-adds=”version”
然后在loop内每一行加
最终数据格式为id,version; id,version; id,version...
如: 11,12; 23,33;




二、父页面:

  1. 文本域:
t:mixins="zoneUpdater" t:clientEvent="change" t:event="materialIdsChange" t:zone="materialArea" />

  • t:event="materialIdsChange" -- 当选择后文本框值改变时触发的事件名称
  • 对应事件示例: Object onMaterialIdsChange(@RequestParameter(value = "https://www.it610.com/article/param", allowBlank = true) String materialIds){}

  • t:zone="materialArea" --需要更新的zone

  • t:clientEvent="change" --对于弹出框用zoneUpdater更新,必须为"change"

  1. 需要更新的zone:

...

有时不加会报错,请注意

  1. 弹出窗口按钮

在pagelink组件上加data-popup="true" 就可以弹出对应的页面
t:parameters="popParams" 可以动态设置弹出框的参数
public Map getPopParams() {
Map queryParams = new HashMap();
queryParams.put("openerField", "selectedMaterialIds");
return queryParams;
}

------------------------------------------------分割线--------------------------------------------

三、grid表格嵌套方法
"walletList" row="curWallet" add="issuerName,walletStatus,operation,nested" exclude="loginAccountId,issuerId,protetType,status,walletId,amntType,updateAmnt" reorder="walletAccountNo,walletName,amount,currency,expriryTime,issuerName,walletStatus,remark,creationTime,operation"
t:mixins="colspans" Colspans.colspan="nested">

1. 需要添加一个自定义列到 grid的add属性里, 然后添加插件colspans 和 列名如:t:mixins="colspans" Colspans.colspan="nested"

2. 在单元格内的内容就是嵌套的内容
...
注意:nestedCell里如果包含标签或文本则显示,反之不显示

3. 所以,加if组件判断是否显示,例:

"xxx">
...

"yyy">
...

...<可包含多个>

【Tapestry框架使用方法技巧总结】因此,请保证在组件之外不出现任何内容,否则该列将会一直被显示

    推荐阅读