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}"/>  
           将显示每一行的序号。

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

图片

 

 

 


 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值