`
5day
  • 浏览: 14320 次
  • 性别: Icon_minigender_1
  • 来自: 四川遂宁
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

seam分页总结

阅读更多

一:抽象类:

/**
 * 
 */
package cn.cjp.utility;
import javax.persistence.EntityManager;
import javax.faces.model.SelectItem;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.Component;
/**
 * @author rmc
 *
 */
public abstract class PageABT{
	EntityManager em = (EntityManager) Component.getInstance("entityManager");
	 //分页开始
    protected int lines = 10;
    protected int pages = 0;
    long entrys =  Contexts.getPageContext().get("entrys")==null?0:Contexts.getPageContext().get("entrys");
    protected List<SelectItem> pageselectitem = Contexts.getPageContext().get("pageselectitem");
    /**
     * 重置分页
     */
    protected void resetpage(){
    	 Contexts.getPageContext().remove("entrys");
         entrys=-1;
         Contexts.getPageContext().remove("pageselectitem");
         pageselectitem=null;
         setPage(0);
    }
    /**
     * 保存查询合计
     * @param query 例子:" from Send s where s.status=-1 "
     */
    protected saveentrys(String query){
        Integer result=Contexts.getPageContext().get("entrys");
        if(result==null||entrys==-1){
            entrys=em.createQuery("select count(s)"+query).getSingleResult();
            Contexts.getPageContext().set("entrys",entrys);
        }
    }
    public List<SelectItem> Pages() {
        if(pageselectitem!=null)
        {
            return pageselectitem;
        }else{
            pageselectitem=new LinkedList<SelectItem>();
            pages = (int) (entrys / lines + 1);
            for ( i in 0..< pages) {
                pageselectitem.add(new SelectItem(i, "第" +(1+ i) + "页"));
            }
            Contexts.getPageContext().set("pageselectitem",pageselectitem);
            return pageselectitem;
        }
    }
    protected Integer page=Contexts.getPageContext().get("page")==null?0:(Integer)Contexts.getPageContext().get("page");
    public Integer getPage(){
        return page;
    }
    public void setPage(Integer page){//for selectitem
        this.page=page;
        Contexts.getPageContext().set("page", page);
    }
    public void setpage(int opr){//for button > and < set page
        page=getPage();
        List<SelectItem> result = Contexts.getPageContext().get("pageselectitem");
        int maxpage = result.size() - 1;
        if (opr != 0) {
            page = ((page + opr) >= 0) ? (page + opr)  : page;
            page = (page > maxpage) ? maxpage : page;
            setPage(page);
        }
    }
    //分页结束
	
}

 二:使用

@Name("sendmng")
public Test extends PageABT{
public void rest(){
resetpage();
}
@DataModel("sendlist")
private List<Send> sendlist;
@DataModelSelection("sendlist")
private Send s;
@Factory("sendlist")
public void listinit(){
query=" from Send s where s.status=1 "
saveentrys(query);
list=em.createQuery("select s"+query+"order by s.id desc").setFirstResult(page*lines).setMaxResults(lines).getResultList();        
}
}

 xhtml:

<h:form>
					<h:panelGrid columns="4" id="som">
						<a:commandButton value="<" action="#{sendmng.setpage(-1)}"
							reRender="som,sendlist" />
						<h:selectOneMenu value="#{sendmng.page}">
							<f:selectItems value="#{sendmng.Pages()}" />
							<a:support event="onchange" action="#{sendmng.setpage(0)}"
								reRender="som,sendlist" />
						</h:selectOneMenu>
						<a:commandButton value=">" action="#{sendmng.setpage(1)}"
							reRender="som,sendlist" />
						<h:outputText style="color:blue" value="共计#{sendmng.entrys}个" />
					</h:panelGrid>
				</h:form>
1
0
分享到:
评论

相关推荐

    (可直接运行)国外的seam carving matlab源码(包含gui)

    Seam Carving是一种图像处理技术,常用于动态调整图像大小,尤其在保持视觉质量的同时减小或增大图像的尺寸。这种技术的核心理念是通过找出并移除(或添加)图像中的“能量最小”像素行(或列),这些行(或列)被...

    seam_carving 代码实现 seam

    总结来说,Seam Carving 是一种智能的图像调整技术,它通过寻找和操作能量最低的像素序列来改变图像尺寸,从而保持图像的关键内容。在实际应用中,这一技术结合了图像处理、优化算法和数据结构,对于理解和掌握图像...

    seam框架相关知识总结

    Seam框架是一个全面的Java企业级开发框架,它在2005年由JBoss公司推出,主要用于简化Java EE应用的复杂性,特别是整合了JSF(JavaServer Faces)、EJB、CDI(Contexts and Dependency Injection)等技术。Seam框架的...

    jboss seam 学习资料,seam in action和官方手册

    **JBoss Seam 学习资源概述** JBoss Seam 是一个开源的应用程序框架,它整合了JavaServer Faces (JSF)、Enterprise JavaBeans (EJB)、Java Persistence API (JPA) 和其他Java EE技术,旨在简化开发过程,提高开发...

    Seam框架文档简述

    ### Seam框架核心知识点详解 #### 一、Seam框架简介 Seam,全称为JBoss Seam,是一款基于Java EE 5的技术栈构建的应用框架。它通过整合JSF(JavaServer Faces)与EJB 3.0(Enterprise JavaBeans 3.0)组件,并充分...

    JBOSS SEAM组件中文手册

    **JBoss Seam组件中文手册** **一、Seam框架概述** Seam是一个开源的企业级Java框架,由JBoss公司开发,旨在简化Java EE应用程序的开发。它将多种技术如JavaServer Faces (JSF),Java Persistence API (JPA),EJB 3...

    为Seam做好准备

    "为Seam做好准备"这个标题暗示我们即将探讨的是关于Seam框架的入门与准备工作。Seam是一个Java EE集成框架,它将JavaServer Faces(JSF)、Java Persistence API(JPA)、Enterprise JavaBeans(EJB)3.0以及其他...

    seam参考手册中文版

    #### 总结 通过以上知识点的梳理,我们可以看到Seam不仅仅是一个简单的Web开发框架,它还融合了诸如业务流程管理、持久层支持等多种功能。这使得开发者能够更加专注于业务逻辑本身,而不是被底层的技术细节所困扰。...

    jboss-seam2.0文档

    总结,JBoss Seam 2.0是一个强大的开发框架,它通过集成多种Java EE技术,提高了开发效率,降低了复杂性。提供的文档和资源帮助开发者更好地理解和利用Seam的功能,从而构建高效、可维护的企业级应用。

    seam in action 中文 english

    《Seam in Action》是一本专门探讨Seam框架的书籍,该书分为中文和英文两个版本,对于初学者和有经验的开发者来说都是一个宝贵的资源。Seam是一个强大的Java EE框架,它集成了多种技术,如JavaServer Faces (JSF)、...

    seam_in_action

    根据提供的信息,我们可以推断出这是一本关于 Seam 框架的专业书籍,书名为《Seam in Action》,作者为 Dan Allen 和 Manning 出版社出版。本书主要讲解了 Seam 框架在 Java EE 3 环境中的应用与开发实践。接下来将...

    MATLAB_Seam_Carving_seamcarving_

    MATLAB_Seam_Carving_seamcarving_ 是一个与图像处理相关的项目,主要涉及到一种称为“seam carving”的技术,这是一种动态图像调整大小的方法,它可以在不改变图像整体视觉效果的情况下,增加或减少图像的宽度和...

    Seam security

    Seam Security是针对Java Web应用程序的安全框架,它是JBoss Seam项目的一部分,提供了全面的安全解决方案,包括身份验证、授权和身份管理等功能。Seam Security以易于配置和使用为特点,允许开发者快速设置应用程序...

    Jboss Seam中文版

    ### JBoss Seam中文版知识点详解 #### JBoss Seam简介 JBoss Seam是一个强大的企业级应用开发框架,基于Java EE标准,特别强调简化Web应用的开发流程。它通过整合多种技术如JSF、EJB 3.0等,提供了一种更为高效、...

    seam需要的jar包

    Seam框架是一个全面的Java企业级应用开发框架,它整合了JSF(JavaServer Faces)、EJB、CDI(Contexts and Dependency Injection)以及许多其他Java EE技术,为开发者提供了强大的组件模型和丰富的功能,旨在简化...

    SEAM 中文开发指南

    ### SEAM 中文开发指南知识点概述 #### 一、SEAM 框架简介 - **SEAM**:SEAM 是一个基于 Java EE 的企业级应用框架,它简化了复杂的应用程序开发过程,并且提供了丰富的功能来支持业务逻辑的实现。 - **版本信息**...

    Seam Carving的C++实现代码

    Seam Carving是一种图像内容感知的尺寸调整方法,它能够在保持图像主要结构不变的情况下,智能地减少或增加图像的宽度和高度。这种方法是由Amit Agarwal和Matthieu Salzmann于2007年提出的,其核心思想是通过找到...

    seam的注解和标签

    Seam是一个Java EE框架,它将JavaServer Faces(JSF)、Java Persistence API(JPA)、Inversion of Control(IoC)和Enterprise JavaBeans(EJB)等技术融合在一起,为开发复杂的Web应用程序提供了便利。在Seam框架...

    Seam2.0GA 中文开发指南

    ### Seam2.0 GA 中文开发指南 #### JBoss Seam简介 JBoss Seam是一个高度集成的应用框架,旨在简化企业级Java应用的开发过程。Seam2.0版本提供了丰富的功能来支持面向组件的编程模式,并且它紧密集成了JavaServer ...

    Seam - 语境相关的组件

    Seam是一种Java EE框架,它在开发企业级应用程序时提供了高度集成和语境相关的组件模型。这个框架的主要目标是简化复杂性,使开发者能够更高效地构建动态、响应式的Web应用。Seam的核心理念是将不同的技术,如Java...

Global site tag (gtag.js) - Google Analytics