必威体育Betway必威体育官网
当前位置:首页 > IT技术

tapestry组件

时间:2019-08-03 23:12:09来源:IT技术作者:seo实验室小编阅读:55次「手机版」
 

tapestry

首先tapestry组件最基本的是由三个文件组成:Html,page,java文件

Html页面是前台,java就是后台逻辑,page文件就是将前台与后台联系起来的配置文件。这里的组件大部分只在html页面中直接写就可以用。部分需要在page文件中配置。(下面例子中的html页面,page页面,java代码就是指这以上三个文件)。

1) DirectLink 组件

  超连接的组件 listener为监听方法,parameters为所传值。用与页面跳转。

Html:

   <a jwcid="@DirectLink"listener="listener:logSelect" parameters="item.id">

 日志名称

   </a>

java代码

Log.java  

publicIPage logSelect(String id){  

   LogDetails logDetails = getLogDetails();  

   logDetails.setLogId(id);  

   return logDetails;  

DirectLink组件表现为一个HTML<a>元素,用来提供一个URL,当用户点击时,触发页面中一个特定的监听方法(logSelect).

   DirectLink通过listener监听方法将参数“扔”给下一个页面.

2) any 组件

Any组件适用与给各html标签,属性赋值,如给td的rowspan和title赋值:

<tdjwcid="@Any"  rowspan="ognl:item.size"align="center" title="ognl:item.name">

</td>

  也可以定义隐藏域如:

   <inputtype="hidden"  name=ognl:idid=ognl:id  jwcid="@Any"value="ognl:value"/>

Any组件用法灵活多变,也很广泛,可用于多种其它组件不能完成的功能。

3) calendar 组件

  Calendar组件为日期组件,显示日期时用,如:

<tdalign="left" >至:

  <input name="Input"  value="ognl:item.rq"readonly="RradOnly" width="200" jwcid="ggrq@xylib:Calendar"/></td>

上面的例子是显示出一个日期框让选择日期,若显示时间需加上time=“ture”。

  若为列表显示则是需要加上state="list"属性,即只是显示出日期不能选择。

<spanjwcid="@xylib:Calendar" state="List"  value="ognl:curJD_ZJZTQK.zjsj"/>

4) Chart 组件

  Chart组件用来显示各种图表:

<imgjwcid="@xylib:Chart" width="800" height="400"chartType="ognl:chartType" chart="ognl:chartDocument"/>

5) Checkbox组件

  Checkbox组件用来显示一个复选框:

<inputtype="checkbox" jwcid="@xylib:Checkbox"checked="checked" value="ognl:zjz.ZJ_ZJBH" />

有checked,disable等属性,value用来存checkbox的值。

Checkbox组件常和CheckboxGroup组件合起来用,将一组选中的值传到后台。

<spanjwcid="zjdh@xylib:CheckboxGroup"selected="ognl:jd_zjzzj_ids">

<input type="checkbox" jwcid="@xylib:Checkbox"checked="checked" value="ognl:zjz.ZJ_ZJBH" />

<input type="checkbox"jwcid="@xylib:Checkbox" checked="checked"value="ognl:zjz.ZJ_ZJBH" />

</span>

CheckboxGroup中的selected="ognl:jd_zjzzj_ids"属性就是将里面包裹的checkbox的值组成一个数组传到后台。

6) Css组件

  引入样式表:

  <link jwcid="@xylib:Css"href="../../../../style/SystemStyle.css" rel="stylesheet"type="text/css"/>

7) Insert组件

   这个组件是用来完全显示的,这个组件很简单,就是实现out.print()的功能。例如后台传过来一个值需要在页面上显示.

<spanjwcid="@xylib:Insert" value="ognl:xh.SHYJ" />   

Insert组件有一个raw属性,若raw=”true”则表示页面不解析成html代码。即后台输入是什么值,页面上就显示什么值。如:xh.shyj=”<table></table>”,若不写raw属性或为false,则页面会显示 出来一个表格。若写raw=”true”则只会显示<table></table>这几个字。

8) FilterInser组件

   这个组件是用来不完全显示的。例如后台传过来一个值需要在页面上显示但是这个值太长,页面可能显示不完这时就需要用这个组件。它有一个length属性,这个属性等于几他就只显示几个字符,剩下的字符会以省略号显示。

<spanjwcid="@xylib:FilterInsert" value="ognl:xh.SHYJ"length="10"/>  

9) foreach组件

foreach组件是用来循环输出后台查出来的list值,其中source为数据源即为后台list的名称,value和index是在page文件中定义的,value为循环时的变量,index则是一个序列号用来显示每条数据的序列 从0开始:

html代码:

<spanjwcid="@Foreach" source="ognl:bgzmwjlist"value="ognl:cur_bg" index=”ognl:index”>

<tr>

<tdalign="center" nowrap="nowrap"><spanjwcid="@Insert" value="ognl:cur_bg.BGNR"/></td>

</tr>

</span>

Page代码:

<?xmlversion="1.0" encoding="UTF-8"?>

<!DOCTYPEpage-specificationPUBLIC "-//ApacheSoftware Foundation//Tapestry Specification 4.0//EN"

"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">

<page-specification  class="com.zzxy.model.cz.xygh.xybgsh.ShowBgMxListPage">

   <property name=" cur_bg " /> 

   <property name="index" />

</page-specification> 

Java代码:

private Listbgzmwjlist;

public List getJY_BGZMWJList(){

if(this.isRendering() && this.bgzmwjlist == null){        

   this.bgzmwjlist = this.getXybgshFacade().getJY_BGZMWJList(jy_bgsq.getId());

}

return this.bgzmwjlist;

  }

10) Hidden组件

就是隐藏域组件,跟普通的hidden是一样的:

<inputjwcid="@xylib:Hidden" value="ognl:jy_bgsq.id"/>      

11) If组件

  条件判断组件类似程序中的if,可单独使用也可跟else,condition属性即为条件:

<spanjwcid="@If"  condition="ognl:index%2==0">

<span jwcid="@Insert"value="ognl:'&lt;tr&gt;'"raw="ognl:true"></span>

<spanjwcid=”@Else”>

</span>

12) Radio组件

  生存一个单选按钮, radiogroup中包裹的是一组单选框,checked代表当前选 中的一个,在表单提交时selectted将当前选中的一个值传到后台。如:

<spanjwcid="xb@xylib:RadioGroup" class="TextStyle" selected="ognl:jc_cgrlxr.xb">

<inputjwcid="@xylib:Radio" type="radio"value="ognl:@com.zzxy.common.constants@JC_GYSLXR_BG_XB_MAN"checked="checked"/>

<span jwcid="@Insert"value="ognl:@com.zzxy.common.Constants@getmapJC_GYSLXR_BG_XB(@com.zzxy.common.Constants@JC_GYSLXR_BG_XB_MAN)"/>

<inputjwcid="@xylib:Radio" type="radio"value="ognl:@com.zzxy.common.Constants@JC_GYSLXR_BG_XB_WOMEN"/>

<span jwcid="@Insert"value="ognl:@com.zzxy.common.Constants@getmapJC_GYSLXR_BG_XB(@com.zzxy.common.Constants@JC_GYSLXR_BG_XB_WOMEN)"/>

</span>

13) ImpScript组件

   引入js的组件:

<scriptjwcid="@xylib:ImpScript" script="InitTableEvent.js" />

14) Select组件

下拉框组件,value即为选中的值,中间的option是其子节点,即为下拉的选择项,source为一个list<map>集合

<selectjwcid="sybz5@xylib:Select" value="ognl:gg_XTKZ_ID_5.sybz"class="SelectStyle" style="width:50px">

<optionjwcid="@xylib:Options"source="ognl:@com.zzxy.common.Constants@GG_XTKZ_SYBZ_Map"/>

</select>

15) Tree组件

树型组件,跟据一定的规则查询出来的list转化为一个树型结构。在html页面中的jwcid的值 就是page页面中的id.在page页面中的source刚为java代码中定义的list;

Page页面中的selectedTreeNode的值则为选中树当前节点的id.

            clickOnme则为点击树节点时执行的js方法名;

               expand属性是定义树默认是否展开。

Html页面:

<table style="width: 100%;">

<tr>

   <td>

<span jwcid="zbmlTree"></span>

   </td>

</tr>

</table>

Page页面:

<page-specification  class="com.zzxy.model.zb.mbgl.mbgl.zbwjmb.zbwjmbzd.FzbxmzlmlTreePage">

   <component id="zbmlTree" type="xylib:Tree">

   <binding name="source" value="listTreeNode"></binding>

   <binding name="value" value="selectedTreeNode"/>

   <binding name="jsFunctionName" value="'clickOnme'"/>

   <binding name="expand" value="false"/>

   </component>

</page-specification>

Jave代码:

private List listTreeNode;

public List getListTreeNode() {

if (this.listTreeNode == null && this.isRendering()) {

   this.listTreeNode = new ArrayList();

   TreeNode root = new TreeNode("ROOT", "招标文件模板目录");

   listTreeNode.add(root);

        return listTreeNode;

  }

相关阅读

分享到:

栏目导航

推荐阅读

热门阅读