`
remoteJavaSky
  • 浏览: 47889 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

情人节后的 JSF PrimeFaces2.0 更完美了!

    博客分类:
  • JSF
阅读更多
       PrimeFaces是最早也最全面的支持JSF2.0的开源库,它显然走在了RichFaces,ICEfaces,MyFaces的前面,2月14日后对JSF2.0的支持更加的完善,增加了几个组件并修补了很多bug,受益于JavaEE6.0的新技术,我们现在可以零配置的在Netbeans6.8或新版本中开发PrimeFaces2.0应用了。

       在这里只需要到http://www.primefaces.org网站上下载其jar包并添加到项目classpath上即可,相当简单,我们看一下官方的一个使用Tree组建事件特性的完整例子(5分钟内搞定):

        1.在Netbeans下新建一JavaWeb工程,一切皆默认,并将primefaces-2.0.0.jar添加到类路径中,index页面代码如下
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.prime.com.tr/ui">
    <h:head>
        <title>Facelet Title</title>
    </h:head>
    <h:body>
        Hello from Facelets
        <h:form>
            <p:tree value="#{documentsController.root}"
                    dynamic="true"
                    var="doc"
                    cache="false"
                    nodeSelectListener="#{documentsController.onNodeSelect}"
                    nodeExpandListener="#{documentsController.onNodeExpand}"
                    nodeCollapseListener="#{documentsController.onNodeCollapse}"
                    update="selectedNode"
                    >
                <p:treeNode>
                    <h:outputText value="#{doc}"/>
                </p:treeNode>
                <p:treeNode type="document" styleClass="documentStyle">
                    <h:outputText value="#{doc}" styleClass="nodeContent"/>
                </p:treeNode>
                <p:treeNode type="picture" styleClass="pictureStyle">
                    <h:outputText value="#{doc}" styleClass="nodeContent"/>
                </p:treeNode>
                <p:treeNode type="mp3" styleClass="mp3Style">
                    <h:outputText value="#{doc}" styleClass="nodeContent"/>
                </p:treeNode>
            </p:tree>
<hr/>
          
             <h:outputText id="selectedNode" value="You have selected: #{documentsController.selectedDocument.data}" />

                  
        </h:form>
    </h:body>
</html>


       2.其托管bean代码如下


package controller;

import java.util.logging.Logger;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.inject.Named;
import org.primefaces.event.NodeCollapseEvent;
import org.primefaces.event.NodeExpandEvent;
import org.primefaces.event.NodeSelectEvent;
import org.primefaces.model.TreeNode;

/**
 *
 * @author Bluesky
 */
@ManagedBean
@Named
@RequestScoped
public class DocumentsController {

	private static final Logger logger = Logger.getLogger(DocumentsController.class.getName());

	private TreeNode root;

	private TreeNode selectedDocument;

	public DocumentsController() {
		root = new TreeNode("root", null);

		TreeNode documents = new TreeNode("Documents", root);
		TreeNode pictures = new TreeNode("Pictures", root);
		TreeNode music = new TreeNode("Music", root);

		TreeNode work = new TreeNode("Work", documents);
		TreeNode primefaces = new TreeNode("PrimeFaces", documents);

		//Documents
		TreeNode expenses = new TreeNode("document", "Expenses.doc", work);
		TreeNode resume = new TreeNode("document", "Resume.doc", work);
		TreeNode refdoc = new TreeNode("document", "RefDoc.pages", primefaces);

		//Pictures
		TreeNode barca = new TreeNode("picture", "barcelona.jpg", pictures);
		TreeNode primelogo = new TreeNode("picture", "logo.jpg", pictures);
		TreeNode optimus = new TreeNode("picture", "optimus.png", pictures);

		//Music
		TreeNode turkish = new TreeNode("Turkish", music);

		TreeNode cemKaraca = new TreeNode("Cem Karaca", turkish);
		TreeNode erkinKoray = new TreeNode("Erkin Koray", turkish);
		TreeNode mogollar = new TreeNode("Mogollar", turkish);

		TreeNode nemalacak = new TreeNode("mp3", "Nem Alacak Felek Benim", cemKaraca);
		TreeNode resimdeki = new TreeNode("mp3", "Resimdeki Goz Yaslari", cemKaraca);

		TreeNode copculer = new TreeNode("mp3", "Copculer", erkinKoray);
		TreeNode oylebirgecer = new TreeNode("mp3", "Oyle Bir Gecer", erkinKoray);

		TreeNode toprakana = new TreeNode("mp3", "Toprak Ana", mogollar);
		TreeNode bisiyapmali = new TreeNode("mp3", "Bisi Yapmali", mogollar);
	}

	public TreeNode getRoot() {
		return root;
	}

	public void setRoot(TreeNode root) {
		this.root = root;
	}

	public TreeNode getSelectedDocument() {
		return selectedDocument;
	}

	public void setSelectedDocument(TreeNode selectedDocument) {
		this.selectedDocument = selectedDocument;
	}

	public void onNodeSelect(NodeSelectEvent event) {
		selectedDocument = event.getTreeNode();
		logger.info("Selected:" + selectedDocument.getData());
	}

	public void onNodeExpand(NodeExpandEvent event) {
		String node = event.getTreeNode().getData().toString();
		logger.info("Expanded:" + node);
	}

	public void onNodeCollapse(NodeCollapseEvent event) {
		String node = event.getTreeNode().getData().toString();
		logger.info("Collapsed:" + node);
	}
}

     3.运行就ok了,可以很容易实现左边树导航,中间内容的经典应用。




3
2
分享到:
评论

相关推荐

    JSF.2.0.最新2010教程

    - **组件模型增强**:JSF 2.0引入了更多的UI组件,并且支持更灵活的自定义组件开发。 - **视图处理改进**:提供了更强大的页面生命周期管理机制,以及更好的错误处理和导航支持。 - **简化EL表达式**:增强了表达...

    JSF2.0 + PrimeFaces在websphere7.0上的部署安装

    JavaServer Faces(JSF)2.0是一个用于构建用户界面的Java EE标准框架,而PrimeFaces是一个基于JSF的组件库,提供了丰富的UI组件,使得开发人员能够更便捷地创建富互联网应用程序(RIA)。在Websphere Application ...

    Netbeans 开发 JSF 2.0 入门学习,使用Primefaces 及JPA

    在本文中,我们将深入探讨如何使用Netbeans IDE进行JSF 2.0的开发,并结合Primefaces和JPA来创建高效、用户友好的Web应用程序。JSF(JavaServer Faces)是一种用于构建Java Web应用程序的MVC(模型-视图-控制器)...

    Mojarra JSF2.0库文件

    **JSF 2.0(JavaServer Faces 2.0)**是Java平台上的一种服务器端的用户界面框架,用于构建富互联网应用程序(Rich Internet Applications,RIA)。它遵循MVC(Model-View-Controller)设计模式,提供了一种声明式的...

    jsf2.0版本helloworld

    5. **CDI集成**: JSF 2.0与Contexts and Dependency Injection (CDI)紧密集成,提供了更强大的依赖注入能力。 6. **Managed Beans增强**: 支持命名 beans 和范围的扩展,以及简化了bean的生命周期管理。 7. **AJAX...

    jsf2.0实例

    **JSF 2.0 实例详解** JavaServer Faces(JSF)是Java平台上用于构建Web应用程序的一种模型-视图-控制器(MVC)框架。JSF 2.0是其一个重要版本,引入了许多增强功能,提高了开发效率和用户体验。在本篇中,我们将...

    JSF.2.0.Cookbook.Jun.2010

    根据提供的部分内容,本书为JSF 2.0的Cookbook,包含超过100个简单但非常有效的食谱式教程,帮助开发者更好地掌握并应用JSF 2.0技术。接下来将对几个核心知识点进行详细介绍: ### 1. JSF 2.0简介 JavaServer ...

    JSF2.0源代码

    **JSF 2.0 源代码详解** JavaServer Faces (JSF) 是一个用于构建Web用户界面...总的来说,JSF 2.0的源代码是开发者提升技能、解决实际问题的宝贵资源,通过深入学习,我们可以更好地利用JSF构建高效、健壮的Web应用。

    jsf primefaces datatable

    **JSF PrimeFaces DataTable 深入解析** PrimeFaces 是一个流行且功能丰富的JavaServer Faces ...在`jsfDemo`项目中,我们可以通过`HelloJSF`了解并实践这些概念,从而更好地理解和掌握JSF PrimeFaces和Spring的集成。

    JSF2.0标签手册

    JSF2.0标签手册DQSV

    JSF2.0实战 - 6、TextBox

    了解这些概念和实践,将帮助你更好地利用JSF 2.0来构建健壮的Web应用。 最后,对于`dojo4j`,这是一个与Dojo Toolkit相关的库,它可能提供了与JSF集成的便利工具,使得在JSF应用中使用Dojo变得更简单。不过,具体...

    jsf2(primefaces3)+spring+hibernate案例下载

    【标题】"jsf2(primefaces3)+spring+hibernate案例下载"涉及到的是一个集成开发环境,其中包含了JavaScript Server Faces (JSF) 2.0版本、PrimeFaces 3.0 UI库、Spring框架以及Hibernate ORM工具。这个案例提供了...

    JSF+primefaces 网盘实现代码前端

    PrimeFaces是一个基于JSF的UI组件库,提供了大量的预定义UI元素,如表格、按钮、图表等,极大地简化了前端开发。例如,我们可以利用PrimeFaces的FileUpload组件来实现文件上传功能,用户可以通过浏览器直接选择文件...

    jsf-primefaces:JSF Primefaces教程

    **JSF Primefaces 教程概述** JSF (JavaServer Faces) 是一个用于构建Web应用程序的Java框架,它简化了用户界面组件的开发和管理。而Primefaces是JSF的一个热门扩展库,提供了丰富的UI组件和强大的功能,使得开发者...

    JSF.2.0.Cookbook

    JSF 2.0作为JSF的一个重大版本更新,在保持原有优势的基础上,引入了诸多改进特性,使得开发人员能够更高效地构建动态Web应用程序。 - **简化开发流程**:JSF 2.0通过引入视图层简化了UI组件的定义和管理。 - **...

    jsf 2.0 api和imp的jar包+源码包+doc

    通过对源码的学习,开发者可以更有效地定位问题,甚至根据需要自定义和扩展JSF的功能。 Doc帮助文档是开发者的重要参考工具,它详细介绍了JSF 2.0的各种特性和用法。文档通常包括API参考、教程、示例和最佳实践等...

    JSF 2.0 (Mojarra 2.0.2-FCS)

    JSF 2.0引入了全双工通信模型,通过Ajax Push技术(例如PrimeFaces的Push API),允许服务器主动向客户端推送数据,提升了实时应用的开发能力。 4. **异步请求处理**: 新增了`&lt;f:ajax&gt;`标签,支持异步请求,使得...

Global site tag (gtag.js) - Google Analytics