列表展示流程

来源:互联网 发布:js验证用户名不能为空 编辑:程序博客网 时间:2024/05/06 14:55

今天做了一个“简单”的功能,一个增删改查,加上一个列表的展示。

由于是用框架做得,所以有些地方不是很清楚,先展示一下成果吧

这是一个“模板”维护功能,然后是一个列表显示功能,说一些具体的流程吧。

第一步肯定是建表无疑了,由于框架里面一般都有相应的代码生成器,省去了很多功夫,所以实体层神马的都不需要我去写,唯一需要我做的就是一个列表的展示问题。

代码生成器生成出来的有这么几个文件:

首先需要写一个jsp页面,用于列表的展示,效果图如下图我的合同模板

核心代码如下:

<c:forEach items="${page.list}" var="porTemplate" varStatus="status"><div class="item"><div class="stream-icon stream-danger"><i class="icon-off icon-white"></i></div><p class="date">${porTemplate.createDate}</p><h4>${porTemplate.title}</h4><p>${porTemplate.porDescribe}</p><p class="rightbtn"><a href="${ftx}/viewTemplete?tid=1"><button class="btn btn-primary">预览模板</button></a><a href="${ftx}/makeContract?t=1"><button class="btn btn-success">生成合同</button></a></p></div></c:forEach>

这个代码比较简单,就是一个c:forEach循环取数据的过程,然后将后台传过来的数据展示出来。但是这个只是做了展示,由于没有做查询功能,实际看到的会是空白,因此我需要把查询功能加上去。在相应的控制层里面写,浏览器地址用哪个就在定义哪个地址的控制层里面,比如我这里的浏览器访问的地址是http://localhost:8080/contract/m/selectTemplete,那就去找这个路径定义在哪儿,我是定义在了......我偏不说可怜,自己找自己的去,找不到说明没动手弄。

@RequestMapping(value = "${memberPath}/selectTemplete")public String selectTemplete(HttpServletRequest request, HttpServletResponse response, Model model) {PorTemplate porTemplate=new PorTemplate();//porTemplate.setPorUid(porUid);Page<PorTemplate> page=porTemplateService.findPage(new Page<PorTemplate>(request, response), porTemplate);model.addAttribute("page", page);model.addAttribute("classid", "2");return "modules/portal/selectTemplete";}

新建一个page对象,通过PorTemplateService的findPage方法进行查询数据并放入到page里面,然后将page对象放到model里面去。注意不要忘了注入敲打

 @Autowired private PorTemplateService porTemplateService;

注入的意思其实和实例化有点儿像,就是为了用PorTemplateService这个对象,这个是spring框架的一个标签。

再说说PorTemplateService这个类,这个就是存放着一些对数据库的操作,其中就有我刚刚用到的findPage方法,然后就是一大堆继承引用findList,神马的,反正就是查数据用的,归根到最后就是一个xml文件,里面存放了sql语句,例如:

<select id="findList" resultType="PorTemplate">SELECT <include refid="porTemplateColumns"/>FROM por_template a<include refid="porTemplateJoins"/><where>a.del_flag = #{DEL_FLAG_NORMAL}<if test="title != null and title != ''">AND a.title LIKE <if test="dbName == 'oracle'">'%'||#{title}||'%'</if><if test="dbName == 'mssql'">'%'+#{title}+'%'</if><if test="dbName == 'mysql'">concat('%',#{title},'%')</if></if><if test="value != null and value != ''">AND a.value = #{value}</if><if test="porUid != null and porUid != ''">AND a.por_uid = #{porUid}</if></where><choose><when test="page !=null and page.orderBy != null and page.orderBy != ''">ORDER BY ${page.orderBy}</when><otherwise>ORDER BY a.update_date DESC</otherwise></choose></select>

 

看到他的ID没有,就是刚刚说到的PorTemplateService的findPage经过一系列追根溯源找到的findList方法,他们sql语句就是这样和他们绑定起来的。

总结一下,楚的地方肯定是有的,但是至少有了个大概的模子出来了。做了一个对数据库操作的功能(增删改查),首先需要建一个实体对象,然后就是相应的dao层文件、service层文件、web控制层文件、mapping里面的用于写sql的xml文件,最后就是前台展示的jsp文件。我现在的理解就是dao层就是根,service是继承出来的各种对数据库操作的方法,entity不用说,web控制层就是用于与前台交互做的一些操作。说的可能不是很清楚,毕竟我第一次委屈

0 0
原创粉丝点击