`
CL315917525
  • 浏览: 232122 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JSF2 Primeface2 LazyDataModel 使用

 
阅读更多

第一步 新建Web项目,搭建好项目环境,将相关依赖的包加入到项目里,使用的服务器为JBoss7

 

第二步 页面代码

 

           <p:outputPanel id="updteTabelUser">

		<p:dataTable var="user" value="#{userBean.lazyModel}" id="userTable"
			paginator="true" rows="10" lazy="true" paginatorPosition="bottom"
			paginatorTemplate=" {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {CurrentPageReport}"
			currentPageReportTemplate="{currentPage}/{totalPages}"
			emptyMessage="#{msgs.empty_data_msg}" selectionMode="single">
			<f:facet name="header">
                                                         用户列表
                </f:facet>
            <p:column headerText="用户名">
				<h:outputText value="#{user.name}" />
			</p:column>
			<p:column headerText="姓名">
				<h:outputText value="#{user.userName}" />
			</p:column>
			<p:column headerText="手机">
				<h:outputText value="#{user.cellphoneNo}" />
			</p:column>
			<p:column headerText="收购点">
				<h:outputText value="#{user.purchaseLocName}" />
			</p:column>
			
			<p:column headerText="操作" styleClass="operating_90">
				<p:commandButton rendered="#{loginBean.contains('02')}" update="carDetail"
					image="ui-icon ui-icon-zoomin" oncomplete="singleCarDialog.show()"
					title="查看">
					<f:setPropertyActionListener value="#{user}"
						target="#{userBean.currentUser}" />
				</p:commandButton>
				
				<p:commandButton  ajax="false"
					image="ui-icon ui-icon-person" title="角色设置" rendered="#{loginBean.contains('03')}"
					action="#{userBean.roleSet}">
					<f:setPropertyActionListener value="#{user}"
						target="#{userBean.currentUser}" />
				</p:commandButton>
			
				<p:commandButton image="ui-icon ui-icon-org" title="组织分配" rendered="#{loginBean.contains('04')}"
					action="#{userOrgBean.input}" ajax="false" >
					
					<f:setPropertyActionListener value="#{user}"
						target="#{userBean.currentUser}" />
				</p:commandButton>
			</p:column>
		</p:dataTable>
	</p:outputPanel>

   p:dataTable 标签相关属性请参照Primeface文档,若没有文档可以发邮件给我

 

 

第三步 后台Bean代码

 

 

 

   @Named

@ConversationScoped
public class UserBean{
    /** 数据模型 */
    private LazyDataModel<User> lazyModel;
    @Inject
    private EntityService entityService;

    @PostConstruct
    private void initLazyModel(){
       String sql = "select u form User u' ;
       lazyModel = this.entityService.findModel(sql.toString());
    }





    /**
     * @return the lazyModel
     */
    public LazyDataModel<User> getLazyModel() {

        return lazyModel;
    }

    /**
     * @param lazyModel
     *            the lazyModel to set
     */
    public void setLazyModel(LazyDataModel<User> lazyModel) {
        this.lazyModel = lazyModel;
    }


}
 

  主要逻辑代码EntityService对LaydataModel的封装具体实现

  public <T> LazyDataModel<T> findModel(final String jpql, final Object... values) { 

        LazyDataModel<T> lazyModel = new LazyDataModel<T>() {
            @Override
            public List<T> load(int first, int pageSize, String sortField, boolean sortOrder, Map<String, String> mapFilters) {
                // 得到总记录数
                Integer count = Long.valueOf(countHqlResult(jpql, values)).intValue();
                this.setRowCount(count);
                //  得到查询结果
                Query q = createQuery(jpql, values);
                setPageParameterToQuery(q, first, pageSize);
                List result = q.getResultList();
                
                return result;
            }
        };

        
        lazyModel.setRowCount(1);
        return lazyModel;
    }
countHqlResult方法主要用户查询结果,可以根据自己需要进行封装,使用LazyDataModel分页最主要的就是
实现其load方法
 

 

分享到:
评论
2 楼 tor 2014-11-17  
你好我做了分页 完了好了成功了;但是 后面突然不行了  调试发现才知道
每次都不进这个
 
LazyDataModel<BackEndUser> lazyModel = new LazyDataModel<BackEndUser>() {  。。。}这个里面去
1 楼 云上太阳 2014-06-22  
总结的很好,DataModel已经使用了有一段时间了,但是对原理一直是模棱两可,楼主能否总结总结。。新人谢过

相关推荐

    JSF入门+JSF web实战+JSF2

    《JSF2》是关于JSF的第二版,相比第一版,JSF2引入了许多新特性,如Facelets作为默认视图层技术,使得视图更易于维护;引入了Partial State Saving,降低了服务器内存消耗;支持CDI(Contexts and Dependency ...

    JSF2新特性以及配置

    5. **Managed Bean注解支持**:JSF2支持使用`@ManagedBean`和`@ViewScoped`等注解来声明和管理Bean,简化了代码并增强了可读性。 6. **CDI集成**:JSF2与Java EE的Contexts and Dependency Injection (CDI)框架集成...

    JSF2和RICHFACES4使用指南

    JSF2和RICHFACES4使用指南

    JSF2 技术如何使用及实例

    ### JSF2 技术如何使用及实例 #### 一、JSF2 技术概述 JavaServer Faces (JSF) 是一种用于构建基于 Java 的 Web 应用程序的标准技术。JSF2 是 JSF 技术的一个重大更新版本,带来了许多改进和新功能,特别是在与 ...

    jsf2+spring sample

    【JSF2与Spring整合详解】 JavaServer Faces 2(简称JSF2)是Java平台上的一个企业级的用户界面框架,它为构建基于Web的应用程序提供了组件化、事件驱动的模型。而Spring框架则是Java后端开发的核心框架,以其依赖...

    JSF2入门视频+源代码教程

    通过使用JSF2,开发者能够构建出声明式和可重用的UI组件,同时利用其事件处理机制、生命周期管理和数据验证功能。 **视频教程可能涵盖的内容:** 1. **JSF2基础**:讲解JSF的基本概念,如生命周期、组件模型、视图...

    Beginning JSF2 APIs and JBoss Seam

    ### 关于《Beginning JSF2 APIs and JBoss Seam》的知识点总结 #### 一、书籍简介与背景 《Beginning JSF2 APIs and JBoss Seam》是一本深入介绍JavaServer Faces 2(简称JSF2)及其相关API以及JBoss Seam框架的...

    JSF2和RICHFASES4使用指南

    JSF2和RICHFASES4使用指南,JSF(Java Server Faces)是JCP标准化组织通过的Web应用开发标准框架,RichFaces是RedHat公司的JBoss社区开发的一套基于JSF的UI组件库,支持异步请求功能

    jsf2项目开发及所需各种标签集合

    标题:“JSF2项目开发及所需各种标签集合”指的是在使用JavaServer Faces 2(JSF2)技术栈开发Web应用项目时,需要掌握的多种标签的使用方法,这些标签包括JSF标准标签、HTML标签、Facelets标签和RichFaces标签等。...

    JSF2 规范的标准参考实现

    1. **组件库增强**:JSF 2引入了更丰富的组件库,包括对HTML5元素的支持,以及自定义组件的简化创建和使用过程。例如,现在可以方便地创建无状态的组件,提高了性能。 2. **Faces Flow**:这是一种新的导航模型,...

    JSF2中Navigation的配置

    在JSF2中,我们可以通过在`@ManagedBean`注解上使用`@ViewScoped`或`@SessionScoped`等来控制bean的生命周期,进而影响导航。例如,如果一个bean是视图作用域,那么当导航发生时,该bean会被销毁;如果是会话作用域...

    一个简单的jsf例子------JSF2学习笔记1

    JSF2默认使用Facelets作为视图表示语言,它是一种XML方言,允许开发者创建声明式的用户界面。Facelets提供了模板和包含机制,使得代码重用和维护更为方便。 6. **依赖注入** JSF2集成了CDI (Contexts and ...

    JSF全套(JSF入门教+ LIB+ Ajax4JSF使用手册 )

    2. **JSF标签**:JSF的UI组件是以标签的形式在JSP页面中使用的,这些标签对应于服务器端的组件。学习JSF标签,你需要理解每个标签的用途,如`h:inputText`用于文本输入,`h:commandButton`用于触发动作,以及如何...

    jsf2segy.zip

    使用"jsf2segy" 工具进行转换,用户可能需要遵循以下步骤: 1. 下载并解压"jsf2segy.zip" 文件,获取转换程序。 2. 准备待转换的JSF格式数据文件。 3. 运行转换程序,指定输入的JSF文件和输出的SEG-Y文件路径。 4. ...

    JSF2 + Primefaces3 + Spring3 & Hibernate4 Integration Project

    **JSF2 + Primefaces3 + Spring3 & Hibernate4 集成项目详解** JavaScript Framework (JSF) 是Java平台上的一种用于构建用户界面的MVC(Model-View-Controller)框架,而Primefaces是一个基于JSF的开源UI组件库,...

    JSF2开发代码示例

    **JSF2开发代码示例** JavaServer Faces (JSF) 是一个用于构建Web应用程序的Java EE框架,它提供了一种声明式的方式来构建用户界面。JSF2.2是该框架的一个重要版本,带来了许多增强功能和改进,使得开发者能够更加...

    jsf中文使用教程jsf中文使用教程

    5. **国际化支持**:JSF支持多语言,这在“JSF中文使用教程”中可能包含如何设置和使用中文资源的内容。 **学习JSF的关键概念**: 1. **Facelet**:Facelets是JSF的默认视图技术,用于创建和组织用户界面组件。 2. ...

    使用带有-JSF-2-的-RichFaces.docx

    使用带有 JSF 2 的 RichFaces 本文主要介绍了使用 JSF 2 的 RichFaces 组件框架的相关知识点。RichFaces 是一个专门为 JavaServer Faces (JSF) 配套使用的大多数其他 rich/Ajax 组件框架,它与 JSF 2 的重要变更...

    详细的JSF的使用步骤

    2. **JSF生命周期** - JSF的生命周期包含六个阶段:回复画面、套用请求值、执行验证、更新模型值、唤起应用程序和绘制回应画面。这些阶段涵盖了从客户端请求到服务器响应的完整过程。 - 在这个过程中,JSF负责处理...

    jsf2+primefaces+spring+hibernate案例

    【标题】"jsf2+primefaces+spring+hibernate案例"揭示了一个基于Java的全栈Web开发项目,它整合了几个关键的技术框架。JSF(JavaServer Faces)是Oracle公司推出的Java Web应用程序开发框架,用于构建用户界面。...

Global site tag (gtag.js) - Google Analytics