第五篇,jroo自定义标签篇

1、jroo中有不少自定义标签,如数据字典标签(select、checkbox、radio、view),权限标签,分页/排序/序号标签,国际化标签,位置标签等。

2、自定义标签篇

2.1、数据字典自定义标签
数据字典中设置的是系统的常量数据,如性别(男:M,女:F)、审核状态(同意:Y,不同意:N)等;
这些数据在启动服务时就加载到缓存中,在系统上线后,这些常量值一般情况不能轻易改变,不开放给客户;
这些数据在页面中通常都表现为:下拉框、复选框、单选框或仅显示名称。

使用:

<my:select pvalue="sex" name="user.sex" value="${user.sex}"/>

<my:checkbox pvalue="sex" name="user.sex" value="${user.sex}"/>

<my:radio pvalue="sex" name="user.sex" value="${user.sex}"/>

<my:view value="${user.sex}" pvalue="sex"/>

2.1.1、下拉框

<my:select 
       pvalue="" //上级代码,如性别的代码SEX
       value="" //当前这一级的代码,如M或F,如果有值,渲染后的select在页面上将选中该项
       name="" //提交到action的属性名,通标准html select 的name
       rules="" //验证规则,如当提交form时,验证是否选择了select : rules="[{notNull:true, message:'请选择请假类型'}]"
       firstoption="---" //渲染后的select,第一个option属性的text,默认是‘请选择’
       nullValue="true/false" //渲染后的select,第一个option的value是否 '';
       styleClass="" //同标准select的class
       id=""
       disabled=""
       multiple=""
       size=""
       style=""
       title=""
       ...各种js事件,同标准select的js事件
/>

2.1.2、复选框
<my:checkbox 
        pvalue="" //上级代码,如性别的代码SEX
        value="" //当前这一级的代码,如M或F或M,F,当M,F时,渲染后的checkbox在页面上,男和女这两项都是选中的
        name="" //提交到action的属性名,通标准html checkbox 的name
        scope ="" //数据字典项的子集,每个子集见以英文状态的逗号隔开
        nbspnum="3" //渲染后的多个checkbox间的空格,默认是3个空格
        splitregex="" //多个选中的值时的分隔符,默认是英文状态的逗号,如M,F。
        checked="true/false" //当vale=""时,checked为true时默认全选,为false时默认全不选。 
        br="true/false" //显示checkbox是否分行,true时一行显示一个checkbox,false时在一行显示,默认false
        styleClass="" //同标准select的class
        id=""
        disabled=""
        multiple=""
        size=""
        style=""
        title=""
        ...各种js事件,同标准checkbox的js事件
/>
2.1.3、单选框
<my:radio 
        pvalue="" //上级代码,如性别的代码SEX
        value="" //当前这一级的代码,如M或F或M,为M时选中男,为F时选中女
        name="" //提交到action的属性名,通标准html radio 的name
        nbspnum="3" //渲染后的多个radio间的空格,默认是3个空格
        br="true/false" //显示checkbox是否分行,true时一行显示一个checkbox,false时在一行显示,默认false 
        styleClass="" //同标准select的class
        id=""
        disabled=""
        multiple=""
        size=""
        style=""
        title=""
       ...各种js事件,同标准radio的js事件
/>
2.1.4、显示名称
<my:view 
        pvalue="" //上级代码,如性别的代码SEX
        value="" //当前这一级的代码 ,如M是时在页面显示‘男’,为F时在页面显示‘女’
        nbspnum="" //checkbox有多个值时,每个checkbox间的空格格式,默认是3个
        splitregex="" //checkbox有多个值时,每个值的分隔符,默认是中文状态的逗号
/> 

2.1.5、数据字典截图:
图片 

2.2、权限标签:在需要权限控制的地方,放在<my:auth/>标签中间;一般是按钮、链接或其他特殊权限数据。
     <my:auth value="{auth}">html代码</my:auth>
      value:权限级别,它的值是el表达式{auth},auth的值在struts2的自定义权限拦截器中设置的。
      auth的值为:W、R、N;
      目前是有3中权限级别:
      管理权限:权限代码为W,管理权限是最大权限,可进行任何操作;
      无访问限制;权限代码为N,该级别权限表示不能进入当前功能,直接返回到一个‘无访问权限’的页面;
      查看权限:权限代码为R,拥有查看权限时,仅能查看。
      例子,在jsp中:
      <my:auth value="{auth}">
            <a href="${ctx }/system/user_input.do?id=${user.id}">编辑</a> 
            <a href="javascript:" title="deletesigle" class="deleteOne" param="ids=${user.id}">删除</a> 
       </my:auth>
       当auth为R时,编辑、删除链接将不可见。

2.3、head标签:<my:head></my:head>
         该标签封装了系统常用的js和css,渲染后的html页面中将自动导入这些js和对应的css
         <my:head 
               datePicker="true/false" //是否导入日期js和css,默认为false
                lhgdialog="true/false" //是否导入弹出框js和css,默认为false
                tree3="true/false" //是否导入ztree v3的js和css,默认为false
                easyui="true/false" //是否导入easyui的js和css,默认为false
                fck="true/false" //是否导入fck编辑器的的js和css,默认为false
                multiFile="true/false" //是否导入附件上传的的js和css,默认为false 
                tree2=""> //是否导入ztree v2的的js和css,默认为false 

         例子:
        <!doctype html>
        <html>
        <my:head>
             //其他css
             //其他js
        </my:head>
        <body>
        </body>
        </html>

2.4、国际化标签:
         <my:i18n zhText="" enText=""/>
         jsp中,中文环境时显示zhText中的数据,英文环境时显示enText中的数据。

2.5、排序、分页、序号标签
          系统采用form的方式排序和分页,即排序代码和分页代码,都要用form包起来,然后post方法提交。
         先看一个例子吧:
         <form action="${ctx }/system/user_list.do" method="post" id="userForm">
               <div>查询条件.......</div>
              <table id="sorttable">
                        <thead class="ltablehead">
                                  <tr>
                                           <th width="5%">序号</th>
                                           <th width="10%">用户姓名 <my:order orderattr="user.userName"/></th>
                                           <th width="10%">性别 <my:order orderattr="user.sex"/></th>
                                           <th width="15%">部门 <my:order orderattr="user.sysDept.deptName"/></th>
                                           <th width="15%">角色</th>
                                           <th style="width: 15%">操作</th>
                                  </tr>
                        </thead>
                       <tbody class="ltablebody"><tr>数据列表......</tr></tbody>
                </table>
               <div class="ltablebottom">
                      <div style="float: right;"> <my:page page="${page}"/></div> 
               </div>
         </form>

2.5.1、排序标签:<my:order orderattr=""/>
             在需要排序的列头加上该标签,属性orderattr与hibernate的hql对应,或sql的表别名.字段名对应,
             如:在用户姓名的列头上加:<my:order orderattr="user.userName"/>,
             渲染后的页面上将出现一个排序的箭头,点击这个箭头,用户姓名就循环升序和降序;
              hql为:...order by user.userName desc。

2.5.2、分页标签:<my:page page="${page}" varName="page"/>
          在列表的底部加上分页标签,属性page的值对应action中的分页数据,

2.5.3、分页页面的序号标签:
           <my:rowNum page="${page}" rowIndex="${status.index}"/> 
           将显示每一行的序号。

组合效果,渲染后的页面效果如下:

图片






转载于:https://my.oschina.net/yeshujun/blog/99413

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值