關於jeesite分頁和點擊列自動排序


特別注意次分頁/點擊行排序方法僅用於 jeesite項目框架內

一般思路:{假設實體類:DemoEntity        業務層:DemoService       引用的業務層:QuoteService       數據層:DemoDao           方法傳的參數:(demoEntity,request,response) }

現將要的數據通過List或Map進行封裝,再將封裝的數據進行分頁

Controller:

 1,Controller:

 2 
 3 @Controller
 4 public class DemoController{
 5 @Autowired
 6 private DemoService demoService;
 7 @Autowired
 8 priavte QuoteService quoteService;
 9 
10 @reponseBody
11 @requestMapping(value="/listDate",method=RequestMethod.POST)
12 public Page<Demo> selectAllListDate(String param,HttpServletRequest request,HttpServletResponse response){
13 //將request,response里的參數(pageNo  pageSize   pageCount)
14 Page<Demo> page=new Demo(request,response);
15    //新建Demo容器  
16      Demo demo=new Demo();
17   //將頁面信息封裝到實體類中
18    demo.setPage(page);
19 //將參數封裝到實體類中,尤其是傳遞多個參數時(便於免於校驗參數是否為空)
20      demo.setParam(param);
21 Page<Demo> resultPages = demoService.getListDate(demo);
22 result resultPages;
23 
24   }
26 }

2,Service:
@Service
public class DemoService extends CrudService<CountCloseLockDao,CountCloseLockEntity>{
@Autowired
private DemoDao demoDao;

public getListDate(Demo demo){
//獲取頁面  
@SuppressWarnings("unchecked")
Page<Demo> page = (Page<Demo>)demo.getPage();
        
//獲取到設備表的總條數
int pageCount
=demoDao.countDemoTimes(demo);
//根據管轄區域字符串來過濾查詢出的數據,再封裝在數據里(特別注意:jeesite會自動在dao層識別page,自動進行分頁) 
//對分頁也可以用sql里自定義Limit來分頁(sql代碼見dao.xml)
//list集合封裝了查詢數據 List<Demo> resultList = demoDao.findListByParams(demo,page); page.setCount(pageCount); page.setList(resultList); result page; } }

 3, Dao:

@MyBatis
public interface DemoDao extends CrudDao<Demo> {
//分數數據  注意當參數包含page時,可以省去dao.xml的分頁,jeesite會自動進行分頁
Page<Demo> findListParams(@Param("demo")Demo demo,@Param("page")Page<Demo> page);
//統計總次數 int
countDemoTimes(Demo demo);
}

 

4,dao.xml

 

<!-- 分頁查詢數據 -->
    <select id="findListByParams" resultType="Demo">
    SELECT a.*  FROM table_a a 
    <where>
            <if test="demo.param!= null and demo.param.trim() != ''">
        <!--模糊查詢-->              
and  a.param like '%${demo.param}%'
            </if>
            <if test="demo.code != null and demo.code.trim() != ''">
                and a.code like '%${demo.code}%'
            </if>
    </where>
    <if test="demo.page != null and demo.page.orderBy != null and demo.page.orderBy != ''">
        ORDER BY ${demo.page.orderBy}        
    </if>


<!--手動添加分頁
    <if test="demo.page != null and demo.page.pageNo != null and demo.page.pageNo != '' and demo.page.pageSize != null and demo.page.pageSize != ''">
limit ${(demo.page.pageNo-1)*demo.page.pageSize},${demo.page.pageSize}        
    </if>
-->

</select>


<!-- 獲取總條數 -->
<select id="countDemokTimes" resultType="java.lang.Integer">
select count(1) from table_a a  

<where>

<!--顯示總條數   注意包含模糊查詢時顯示的總條數的情況-->

<if test="demo.param !=null and demo.param.trim() != ''">

a.param like '%${demo.param}$'

</if>

</where> 

</select>




 

 

 



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM