庭审管理中动态显示今天起7日内的数据,动态查询,并根据已有数据判断新增和修改时的时间冲突问题

来源:互联网 发布:mysql.tar.gz 编辑:程序博客网 时间:2024/04/29 07:23

    拿到这个模块,有点慌神。因为技术比较浅薄。

    仔细分析模块的结构,确定出几个技术难点:

    1.动态查询法庭列表,完成动态列表的第一列。需要使用到c:foreach,并且需要从后台传入数据。

    2.表头的生成,表头是根据当前的时间,查询到从今天起一周内的所有日期进行拼装,此时用到在网上查询的FORMAT函数,将时间转换成需要的格式。

    3.动态给左、上两个条件确定的表格的每一个td,动态拼接一个ID。

    4.设置按钮上周、下周、本周,进行对日期的动态查询。

    分析到这里,顿时感觉一个头两个大。因为如果使用双层的<c:foreach>循环,必定造成id的动态分配有问题。于是,对一周的日期采用固定格式的方式,毕竟一周有7天这个是

固定的。并且如果需要给td动态id,那么最好的方式就是根据查询出的法庭的id以及日期td的id进行动态分配,所以给每个表头写id。

    所以动态表格的建立成功,在生成动态表格的时候采用c:foreach中的begin和end属性,设置为1和7,varStatus设为k。 动态id=${houseId_td${k.index}}。拼接成功。在设置这个id的时候走入了一个误区:认为在进行对星期的跳转的时候,

每个动态id都必须与其他的不同。其实不必如此麻烦,只需要在进行星期跳转的时候,对td设置class属性,调用jquery中的$(".class").text("");方法,将值全部清空即可。

    由于在点击上周、下周、本周按钮的时候需要进行对数据的查询,需要使用ajax的异步查询功能。所以单独设定一个方法命名为Click方法。 在其中定义了URL地址:设定action中的方法,以及传入的参数。值得注意的是,在参数传入周由于

是String格式的,所以需要将其转换成相应的格式,此时的格式是Date。 并且根据参数拼接相应的方法来完成对hql语句的动态拼接。在这里需要设定在传入的两个时间参数之间。使用filters.add(new PropertyFilter("GED_openTime", d1))及

filters.add(new PropertyFilter("LED_openTime", d2)),将查询到的数据返回到界面中。此时最重要的是根据houseId和循环次数J去动态拼接动态td中的显示内容。使用jquery的append函数进行拼接。将每一条数据拼接成为一个链接(实际就是

append里面使用a标签进行拼接)。添加onclick给a标签。

    接下来继续分析需求:

    5.根据连接查询数据库,并可以将每个标签对应的内容显示在一个view.jsp界面上。

    6.查看流程:需要先预定法庭,编辑开庭排期之后,才能进行对笔录、预定人、预定单位的填写。

    根据没一个连接去查询数据,显然是要使用ajax的异步查询操作。由于在上文写到的异步查询中已经查询到了全部的数据,内容全部存放在data.message中,所以此时最简便的操作是:给onlick="showList(id)"方法写参数,内容就是

data.message[i].id,就很轻松的找到了每一条数据的id,当点击的时候使用jquery easyui中的dialog方法,将view.jsp界面的内容显示在一个弹出框上,显示必要的信息。

    由于流程的关系,预定法庭时我们只需要输入法庭用途、是否可公用、开庭日期、所在法庭、开始、结束时间。而在正式开庭的时候进行记录数据。 如果只是用一个界面,虽然能实现功能,但是需要使用很多c:if标签来完成不同时候对界面

的显示效果,这样并不好。所以我使用了两个界面。 相应的就需要在action中添加对应的方法,并且在list.jsp界面上添加相应的按钮。此时aciton方法就会有所不同,因为一个是新建,另一个是修改,这个功能的实现不难,暂且跳过。

    7.开始时间和结束时间都是以开庭日期为标准的,在界面上只显示hh:mm:ss的格式,传递入后台的数据不全,需要去后台进行处理。

    因为开始时间和结束时间的关系,所以我们需要进行后台拼接数据。 最开始的时候我是在实体类中进行的拼接,发现并没有成功,仔细想想发现如果在实体类中修改了方法,那么其他模块调用的时候会出现问题,并且修改了实体类的方法后

会造成数据插入失败。此时,采用的办法是修改jsp界面开始和结束时间的name属性(调用get和set方法的桥梁),在实体类中设置一个新的属性,例如beginTimes,添加get和set方法,并使用@TRANSIENT注解。于是在action的save方法中进行的操作:

拼接日期和时分秒,使之能够正确插入数据库。获取数据的时候使用的是beginTimes的get方法,但是将数据插入数据库时,使用的是beginTime的set方法,于是就需要对String进行转换,变成date类型

0 0
原创粉丝点击