博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
velocity宏命令分页及添加模板库
阅读量:5906 次
发布时间:2019-06-19

本文共 7188 字,大约阅读时间需要 23 分钟。

  hot3.png

  • velocity简单配置

        jar包 velocity-1.7.jar,velocity-tools-2.0.jar

  
velocity
  
org.apache.velocity.tools.view.servlet.VelocityViewServlet
  
    
org.apache.velocity.toolbox
    
/WEB-INF/toolbox.xml
  
  
10
  
velocity
  
  
*.html

  •    模板包含

    111130_WzcD_2283875.png

    可以通过修改velocity.properties文件中的该配置来指定模板文件位置,注意路径问题。

    除此还可以通过#parse指令来对html文件进行包含,例如#parse("/views/common/page.html")

       分页处理

       pageBean:

       

package com.test;import java.io.Serializable;import org.apache.commons.lang.builder.ToStringBuilder;import org.apache.commons.lang.builder.ToStringStyle;public class PageBean implements Serializable {    private static final long serialVersionUID = -303675966023156812L;    private int dataSum = 0; // 数据总个数    private int pageSum = 0; // 页面总个数    private int pageSize = 10; // 单页面的数据个数    private int pageNumber = 1; // 当前页号    private int customPageSize = 0; // 自定义 单页面的数据个数    public PageBean(){}    public PageBean(int p_pageSize) {        this.pageSize = p_pageSize;    }    public PageBean(int pageNumber,int customPageSize) {        this.pageNumber = pageNumber;        this.customPageSize = customPageSize;    }    /**     * GETTER 数据总个数     * @return int     */    public int getDataSum() {        return dataSum;    }    /**     * GETTER 页面总个数     * @return int     */    public int getPageSum() {        return pageSum;    }    /**     * GETTER 单页面的数据个数     * @return int     */    public int getPageSize() {        return this.customPageSize == 0 ? this.pageSize : this.customPageSize;    }    /**     * GETTER 当前页号     * @return int     */    public int getPageNumber() {        return pageNumber <=0 ? 1 : pageNumber;    }    /**     * 查询数据库时,需要的结果集 在 满足SQL查询条件的结果集 中的起始位置。     * @return int     */    public int getFirstResult() {        return( this.getPageSize() * ( ( this.getPageNumber() == 0 ? 1 : this.getPageNumber() ) - 1 ) );    }    /**     * 在查询数据库时,需要的结果集的行数。     * @return int     */    public int getMaxResults() {        return this.getPageSize();    }    /**     * 前一页的页号     * @return int     */    public int getPreviousNumber() {        return this.pageNumber <= 1 ? 1 : this.pageNumber - 1;    }    /**     * 后一页的页号     * @return int     */    public int getNextNumber() {        return this.pageNumber >= this.pageSum ? this.pageSum : this.pageNumber + 1;    }    /**     * 当前页面第一条记录在整个结果集中的位置     * @return int     */    public int getFirstNumber() {        return this.getFirstResult() == 0 ? 1 : this.getFirstResult() + 1;    }    /**     * 当前页面最后一条记录在整个结果集中的位置     * @return int     */    public int getLastNumber() {        return this.getFirstNumber() + this.getPageSize() - 1 > this.dataSum ? this.dataSum : this.getFirstNumber() + this.getPageSize() - 1;    }    /**     * SETTER 数据总个数     * @param p_dataSum int     */    public void setDataSum( int p_dataSum ) {        this.dataSum = p_dataSum;        this.computeAttributes();    }    /**     * SETTER 单页面的数据个数     * @param p_pageSize int     */    public void setPageSize( int p_pageSize ) {        this.pageSize = p_pageSize;    }    /**     * SETTER 当前页号     * @param p_pageNumber int     */    public void setPageNumber( int p_pageNumber ) {        this.pageNumber = p_pageNumber;    }    public int getCustomPageSize() {        return customPageSize;    }    public void setCustomPageSize(int customPageSize) {        this.customPageSize = customPageSize;    }    /**     * 是否禁用“首页”     * @return boolean     */    public boolean disabledFirstPage() {        return this.pageSum == 0 || this.pageSum == 1 || this.pageNumber == 0 ||  this.pageNumber == 1;    }    /**     * 是否禁用“上一页”     * @return boolean     */    public boolean disabledPreviousPage() {        return this.pageSum == 0 || this.pageSum == 1 || this.pageNumber == 0 ||  this.pageNumber == 1;    }    /**     * 是否禁用“下一页”     * @return boolean     */    public boolean disabledNextPage() {        return this.pageSum == 0 || this.pageSum == 1 || this.pageNumber == this.pageSum;    }    /**     * 是否禁用“末页”     * @return boolean     */    public boolean disabledLastPage() {        return this.pageSum == 0 || this.pageSum == 1 || this.pageNumber == this.pageSum;    }    /**     * 是否禁用“GO”     * @return boolean     */    public boolean disabledTurnTo() {        return this.pageSum == 0 || this.pageSum == 1;    }    /**     * 重新计算各个属性值     */    public void computeAttributes() {        // 单页面的数据个数        this.pageSize = this.pageSize <= 0 ? 1 : this.pageSize;        // 数据总个数        this.dataSum = this.dataSum < 0 ? 0 : this.dataSum;        // 页面总个数        if(this.dataSum == 0) {            this.pageSum = 0;        }        else {            int iResidualNum = this.dataSum % this.getPageSize();            int iDivision = this.dataSum / this.getPageSize();            this.pageSum = iDivision == 0 ? 1 : iDivision + (iResidualNum == 0 ? 0 : 1);        }        // 当前页号        this.pageNumber = this.pageNumber <= 0 ? 1 : (this.pageNumber > this.pageSum ? this.pageSum : this.pageNumber);    }    public void reset(int pageSize) {        this.dataSum = 0; // 数据总个数        this.pageSum = 0; // 页面总个数        this.pageSize = pageSize; // 单页面的数据个数        this.pageNumber = 1; // 当前页号        this.customPageSize = 0; // 当前页号    }    /**     * toString     * @return String     */    public String toString() {        return ToStringBuilder.reflectionToString( this, ToStringStyle.DEFAULT_STYLE );    }}

宏命令

#macro(page $pageBean)  ##设置按钮颜色  #set($linkStyle="style=cursor:pointer;color:blue;text-decoration:none;")  ##设置点击事件  #set($changePage="document.getElementById('_changePage').click();")    ##设置数据量  #set($dataSum=$pageBean.getDataSum())  #set($disabledFirstPage=$pageBean.disabledFirstPage())  #set($disabledPreviousPage=$pageBean.disabledPreviousPage())  #set($disabledNextPage=$pageBean.disabledNextPage())  #set($disabledLastPage=$pageBean.disabledLastPage())  #set($pageSize=$pageBean.getPageSize())  #set($disabledTurnTo=$pageBean.disabledTurnTo())  #set($pageSum = $pageBean.getPageSum())  #set($pageNumber=$pageBean.getPageNumber())    ##当出现0数据或者pageBean是null时 显示无数据  #if($dataSum == 0 || !$pageBean)    
无数据  #else        ##提交动作    
    共 $dataSum 条记录         ##判断是否是第一页    #if($disabledFirstPage)      
首页    #else      
首页    #end                      ##判断是否有上一页    #if($disabledPreviousPage)        
上一页    #else        
上一页    #end                  ##判断是否有下一页    #if($disabledNextPage)        
下一页    #else        
下一页    #end                  ##是否有最后一页    #if($disabledLastPage)        
末页    #else        
末页    #end                ##添加事件    每页
        ##每页显示多少页    #set($arr=[10,20,30,40,50,60,70,80,90,100])    #foreach($foo in $arr)        
            $foo            #end    条         转到            #if(!$disabledTurnTo)        ##        
        #set($selectOnChange="document.getElementById('pageNumber').value=this.value;$changePage")        
                        #set($nums = [1..$pageSum])            #foreach($ps in $nums)            
                $ps                        #end                页    #else        
    #end        共  $pageSum 页    #end#end

在起他页面进行调用:

  #parse("/views/common/page.html")  #set($pb=$!request.getAttribute("pageBean"))  #page($pb)

效果:

112313_loWi_2283875.png

转载于:https://my.oschina.net/jkcui/blog/375996

你可能感兴趣的文章
智能指针
查看>>
AIX修改用户密码登录不成功案例分享
查看>>
openstack组件使用的默认端口
查看>>
c语言简单版坦克大战(AllenEnemyTrank文件)
查看>>
Java私塾: 研磨设计之备忘录模式(Memento)
查看>>
理解call和apply方法
查看>>
异步加载(延迟加载)与同步加载
查看>>
机器学习瓶颈 - 从黑盒白盒之争说起
查看>>
小程序图片上传七牛
查看>>
java交换两个变量值a,b的多钟方法
查看>>
Python中被双下划线包围的魔法方法
查看>>
JAVA核心编程教学
查看>>
Oracle:数据类型对应表
查看>>
洛谷P1349 广义斐波那契数列
查看>>
BZOJ3160 万径人踪灭
查看>>
Okhttp3请求网络开启Gzip压缩
查看>>
pycharm配置mysql数据库连接访问
查看>>
Spring源码学习:第0步--环境准备
查看>>
烂泥:rsync与inotify集成实现数据实时同步更新
查看>>
call & apply
查看>>