百度空间 | 百度首页 
 
查看文章
 
关于数据显示标签的设计
2009-07-01 23:58

完善的表格显示标签,应该具备如下功能点
1. 支持text,link,checkbox,radio等多种类型显示

2. 支持代码转名称,如查询结果有operator_id,应能支持转换显示operator_name
3.支持条件表达式,某列显示的内容,复杂情况下是根据条件显示的,如"删除"列,其显示与否跟这条记录的状态有关系

4.支持表格样式由模板文件生成,

5.支持透明的分页,即生成的分页超链接,必须携带所有请求参数(遍历request),跳转下一页,防止查询条件丢失

7 显示格式format,如日期,数字

8. 支持可扩展的多种格式导出

9. 支持国际化

时间比较长的开源项目display tag, 好像也很差劲

个人认为,表格显示、数据库查询、分页、排序、导出,本来就是一体的,所以有如下设计

1. sql.xml, 存放SQL语句  

<sql>

      <query-name>sysadmin.queryOperator</query-name>

    <sql-string>

          select operator_id,operator_name,emai from t_operator

         where operator_name = $varchar2{operator_name} or $varchar2{opeartor_name} is null

   </sql-string>

</sql>

   说明: SQL语句必须使用绑定变量方式,即PreparedStatement,所以$varchar2{operator_name}来表示varchar2类型的参数值, 其中operator_name来至于pageContext,request,session中属性,有数据显示标签收集替换SQL语句中的参数部分

特别注意:必须使用绑定变量,不然会有性能及SQL注入的漏洞

2. 数据显示标签, 与sql.xml绑定

<chinablog:table title="员工列表"   query-name="sysadmin.queryOperator " defaultSortColumn="operator_name" exportType="pdf,excel,csv">

      <chinablog:column text="${operator_id}" titile="操作人员ID" />

     <chinablog:column text='<a href="editOperator.do?id=${operator_id}">${operator_name} </a>'

      title="姓名" sort="true"/>

     <chinablog:column text="${email}" titile="电子邮件"/>

</chinablog:table>

如此,数据显示只需要定义xml,以及在jsp里放一个表格显示tag而已,简单,可靠


类别:建模和设计 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu