一:抽象类:
/**
*
*/
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>
分享到:
相关推荐
Seam Carving是一种图像处理技术,常用于动态调整图像大小,尤其在保持视觉质量的同时减小或增大图像的尺寸。这种技术的核心理念是通过找出并移除(或添加)图像中的“能量最小”像素行(或列),这些行(或列)被...
总结来说,Seam Carving 是一种智能的图像调整技术,它通过寻找和操作能量最低的像素序列来改变图像尺寸,从而保持图像的关键内容。在实际应用中,这一技术结合了图像处理、优化算法和数据结构,对于理解和掌握图像...
Seam框架是一个全面的Java企业级开发框架,它在2005年由JBoss公司推出,主要用于简化Java EE应用的复杂性,特别是整合了JSF(JavaServer Faces)、EJB、CDI(Contexts and Dependency Injection)等技术。Seam框架的...
**JBoss Seam 学习资源概述** JBoss Seam 是一个开源的应用程序框架,它整合了JavaServer Faces (JSF)、Enterprise JavaBeans (EJB)、Java Persistence API (JPA) 和其他Java EE技术,旨在简化开发过程,提高开发...
### Seam框架核心知识点详解 #### 一、Seam框架简介 Seam,全称为JBoss Seam,是一款基于Java EE 5的技术栈构建的应用框架。它通过整合JSF(JavaServer Faces)与EJB 3.0(Enterprise JavaBeans 3.0)组件,并充分...
**JBoss Seam组件中文手册** **一、Seam框架概述** Seam是一个开源的企业级Java框架,由JBoss公司开发,旨在简化Java EE应用程序的开发。它将多种技术如JavaServer Faces (JSF),Java Persistence API (JPA),EJB 3...
"为Seam做好准备"这个标题暗示我们即将探讨的是关于Seam框架的入门与准备工作。Seam是一个Java EE集成框架,它将JavaServer Faces(JSF)、Java Persistence API(JPA)、Enterprise JavaBeans(EJB)3.0以及其他...
#### 总结 通过以上知识点的梳理,我们可以看到Seam不仅仅是一个简单的Web开发框架,它还融合了诸如业务流程管理、持久层支持等多种功能。这使得开发者能够更加专注于业务逻辑本身,而不是被底层的技术细节所困扰。...
总结,JBoss Seam 2.0是一个强大的开发框架,它通过集成多种Java EE技术,提高了开发效率,降低了复杂性。提供的文档和资源帮助开发者更好地理解和利用Seam的功能,从而构建高效、可维护的企业级应用。
《Seam in Action》是一本专门探讨Seam框架的书籍,该书分为中文和英文两个版本,对于初学者和有经验的开发者来说都是一个宝贵的资源。Seam是一个强大的Java EE框架,它集成了多种技术,如JavaServer Faces (JSF)、...
根据提供的信息,我们可以推断出这是一本关于 Seam 框架的专业书籍,书名为《Seam in Action》,作者为 Dan Allen 和 Manning 出版社出版。本书主要讲解了 Seam 框架在 Java EE 3 环境中的应用与开发实践。接下来将...
MATLAB_Seam_Carving_seamcarving_ 是一个与图像处理相关的项目,主要涉及到一种称为“seam carving”的技术,这是一种动态图像调整大小的方法,它可以在不改变图像整体视觉效果的情况下,增加或减少图像的宽度和...
Seam Security是针对Java Web应用程序的安全框架,它是JBoss Seam项目的一部分,提供了全面的安全解决方案,包括身份验证、授权和身份管理等功能。Seam Security以易于配置和使用为特点,允许开发者快速设置应用程序...
### JBoss Seam中文版知识点详解 #### JBoss Seam简介 JBoss Seam是一个强大的企业级应用开发框架,基于Java EE标准,特别强调简化Web应用的开发流程。它通过整合多种技术如JSF、EJB 3.0等,提供了一种更为高效、...
Seam框架是一个全面的Java企业级应用开发框架,它整合了JSF(JavaServer Faces)、EJB、CDI(Contexts and Dependency Injection)以及许多其他Java EE技术,为开发者提供了强大的组件模型和丰富的功能,旨在简化...
### SEAM 中文开发指南知识点概述 #### 一、SEAM 框架简介 - **SEAM**:SEAM 是一个基于 Java EE 的企业级应用框架,它简化了复杂的应用程序开发过程,并且提供了丰富的功能来支持业务逻辑的实现。 - **版本信息**...
Seam Carving是一种图像内容感知的尺寸调整方法,它能够在保持图像主要结构不变的情况下,智能地减少或增加图像的宽度和高度。这种方法是由Amit Agarwal和Matthieu Salzmann于2007年提出的,其核心思想是通过找到...
Seam是一个Java EE框架,它将JavaServer Faces(JSF)、Java Persistence API(JPA)、Inversion of Control(IoC)和Enterprise JavaBeans(EJB)等技术融合在一起,为开发复杂的Web应用程序提供了便利。在Seam框架...
### Seam2.0 GA 中文开发指南 #### JBoss Seam简介 JBoss Seam是一个高度集成的应用框架,旨在简化企业级Java应用的开发过程。Seam2.0版本提供了丰富的功能来支持面向组件的编程模式,并且它紧密集成了JavaServer ...
Seam是一种Java EE框架,它在开发企业级应用程序时提供了高度集成和语境相关的组件模型。这个框架的主要目标是简化复杂性,使开发者能够更高效地构建动态、响应式的Web应用。Seam的核心理念是将不同的技术,如Java...