保存客户&分页查询&Spring解决延迟加载问题

保存客户

Struts2通过模型驱动拿到封装对象,调用业务层将对象传递到持久层,持久层调用Hibernate模版将对象持久化到数据库。

持久层代码实现:

 

 

分页查询:

  • 创建PageBean实体类,里面有当前页数,每页显示记录数,总记录数,总页数,每页查询到的数据集合List。
  • 当前页数以及每页记录数从前端页面获取(如果为null在web层中给予一个默认值),总记录数由持久层查询行数获得,总页数由总记录数除以每页记录再数向上取值获得。
  • 每页查询到的对象集合由持久层利用DetachedCriteria对象分离条件查询获得。
  • 以上5个属性在业务层进行封装,在web层放入值栈。
  • 前端利用to_page()函数,进行提交,改变属性,改变持久层查询到的List集合,实现分页查询。
  • Spring配置OpenSessionInView过滤器,解决延迟加载问题。

 

PageBean:封装分页查询属性

持久层:查询需要的数据传给业务层

业务层:调用持久层,封装PageBean传给web层,

web层:调用业务层,将PageBean放入值栈

前端:通过改变currPage改变当前页数,通过改变pageSize改变每页记录数,实现分页查询功能

Spring配置OpenSessionInView过滤器,在web层开启事务,web层的操作变成持久态,从而解决延迟加载问题。

 

PageBean:封装分页查询属性

 

 

持久层:查询需要的数据传给业务层

 

业务层:调用持久层并传之以分页查询的属性,封装PageBean传给web层

 

 

web层:调用业务层,将PageBean放入值栈

 

前端:实现分页查询功能

1 topage函数

 

2 分页

 

 <TR>
    <TD><SPAN id=pagelink>
            <DIV style="LINE-HEIGHT: 20px; HEIGHT: 20px; TEXT-ALIGN: right">
                共[<B><s:property value="totalCount"/></B>]条记录,[<B><s:property value="totalPage"/></B>]页
                ,每页显示
                
                <!-- 通过改变pageSize改变每页显示记录数 -->
                <select name="pageSize" onchange="to_page()">
                     <option value="3" <s:if test="pageSize==3">selected</s:if> >3</option>
                    <option value="5" <s:if test="pageSize==5">selected</s:if>>5</option>
                    <option value="10" <s:if test="pageSize==10">selected</s:if>>10</option>
                </select><!-- 如果currPage不等于1,则显示以下 -->
                <s:if test="currPage!=1">
                [<A href="javascript:to_page(1)">首页</A>]
                [<A href="javascript:to_page(<s:property value="currPage-1"/>)">前一页</A>]
                </s:if>
                &nbsp;&nbsp;
                
                <!-- 通过a标签实现翻页跳转 -->
                <B>
                <s:iterator var="i" begin="1" end="totalPage">
                   <s:if test="#i == currPage">
                          <s:property value="#i"/>
                   </s:if>
                   <s:else>
                      <a href="javascript:to_page(<s:property value="#i"/>)"><s:property value="#i"/></a>
                   </s:else>
                </s:iterator>
                
                </B>
                &nbsp;&nbsp;
                <!-- 如果currPage不等于总页数,则显示下一页和尾页 -->
                <s:if test="currPage!=totalPage">
                [<A href="javascript:to_page(<s:property value="currPage+1"/>)">后一页</A>] 
                [<A href="javascript:to_page(<s:property value="totalPage"/>)">尾页</A>] 
                到
                </s:if>
                <input type="text" size="3" id="page" name="currPage" /><input type="button" value="Go" onclick="to_page()"/>
            </DIV>
    </SPAN></TD>
</TR>

 

 

 

Spring配置OpenSessionInView过滤器,在web层开启事务,web层的操作变成持久态,从而解决延迟加载问题。

延迟加载问题:字典表里面的

 

posted @ 2019-02-12 17:26  IslandZzzz  阅读(296)  评论(0编辑  收藏  举报