您的位置:首页 > 产品设计 > UI/UE

使用easyui时遇到的问题

2016-05-10 13:42 295 查看

1.datagrid排序

如何设置datagrid参数支持列排序,请查看相关文章,这里不做过多介绍。
我使用的方式是在需要排序的字段上加上sortable=“true”
<th field="ftotal" width="50" sortable="true">总计</th>
这样当点击列头进行排序时,后台就会传递参数:



然后后台接收参数,拼接到sql语句中执行就可以了。

我遇到的问题时,数据库持久层使用的是mybatis,数据库字段使用了下划线命名方式,例如user_name,create_date等,为了在代码里面便于阅读,使用了骆驼峰的命名方式,当然这个操作是mybatis_genetator完成的。那么datagrid显示的时候,就是这样的
<th field="userName" width="50" sortable="true">用户名</th>
<th field="createDate" width="50" sortable="true">创建时间</th>

点击列名排序时,传递的参数就变成了,userName、createDate,显然与数据库里面的字段不一致。

思路一:

使用Java代码将骆驼峰的字段变为下划线命名方式,如果字段映射规则很标准,很准确。例如:userName=>user_name,但是mybatis生成实体是允许使用columnOverride将数据库字段映射成各种名字,所以这种方法不可行。

思路二:

mybatis逆向工程生成的Mapper.xml文件里面有resultMap来处理字段映射的问题,那么我们只需要读取这个xml文件,根据property找到column。读取xml是一件很辛苦的事情,所以我也不想这么做。

思路三:

既然映射完以后,操作变得这么麻烦,干脆不映射。最终我采用的也是这种方式。只需要在mybatis_generator配置文件里面配置就行了。
这样配置完以后,生成的实体就会使用真实的字段名。当然现在仍然可以使用columnOverride进行字段映射。

<table tableName="" domainObjectName="">
<property name="useActualColumnNames" value="true"/>
</table>


2.填充表单时datebox不显示数据的问题

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: