TableModel类
<h:dataTable>可以列举以下几种类型的数据:
列表
java.util.List的实例
java.sql.ResultSet的实例
javax.servlet.jsp.jstl.sql.Result的实例
javax.faces.model.DataModel的实例
对于前四种类型,JSF实际上是以javax.faces.model.DataModel加以包装,DataModel是个抽象类,其子类都是位于 javax.faces.model这个package下:
ArrayDataModel
ListDataModel
ResultDataModel
ResultSetDataModel
ScalarDataModel
如果您想要对表格数据有更多的控制,您可以直接使用DataModel来设定表格数据,调用DataModel的setWrappedObject()方法可以让您设定对应类型的数据,调用getWrappedObject()则可以取回数据,例如:
• TableBean.java
package onlyfun.caterpillar;
import java.util.*;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
public class TableBean {
private DataModel model;
private int rowIndex = -1;
public DataModel getUsers() {
if(model == null) {
model = new ListDataModel();
model.setWrappedData(getUserList());
}
return model;
}
private List getUserList() {
List userList = new ArrayList();
userList.add(new UserBean("caterpillar", "123456"));
userList.add(new UserBean("momor", "654321"));
userList.add(new UserBean("becky", "7890"));
return userList;
}
public int getSelectedRowIndex() {
return rowIndex;
}
public String select() {
rowIndex = model.getRowIndex();
return "success";
}
}
在这个Bean中,我们直接设定DataModel,将userList设定给它,如您所看到的,我们还可以取得DataModel的各个变量,在这个例子中,select()将作为点选表格之后的事件处理方法,我们可以借由DataModel的getRowIndex()来取得所点选的是哪一row的数据,例如:
index.jsp
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<link href="styles.css" rel="stylesheet" type="text/css"/>
<body>
<f:view>
<h:form>
<h:dataTable value="#{tableBean.users}" var="user"
styleClass="orders"
headerClass="ordersHeader"
rowClasses="evenColumn,oddColumn">
<h:column>
<f:facet name="header">
<h:outputText value="Name"/>
</f:facet>
<h:commandLink action="#{tableBean.select}">
<h:outputText value="#{user.name}"/>
</h:commandLink>
<f:facet name="footer">
<h:outputText value="****"/>
</f:facet>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Password"/>
</f:facet>
<h:outputText value="#{user.password}"/>
<f:facet name="footer">
<h:outputText value="****"/>
</f:facet>
</h:column>
</h:dataTable>
</h:form>
Selected Row: <h:outputText
value="#{tableBean.selectedRowIndex}"/>
</f:view>
</body>
</html>
DataModel的rowIndex是从0开始计算,当处理ActionEvent时,JSF会逐次递增rowIndex的值,这让您可以得知目前正在处理的是哪一个row的数据.
分享到:
- 2009-04-18 17:17
- 浏览 935
- 评论(0)
- 论坛回复 / 浏览 (0 / 2076)
- 查看更多
相关推荐
**JSF程序设计** JavaServer Faces (JSF) 是一种基于Java的Web应用程序开发框架,由Sun Microsystems(现已被Oracle收购)开发并维护。JSF的主要目标是简化用户界面组件的构建和管理,提供MVC(Model-View-...
JSF的核心在于它将UI组件与后端业务逻辑分离,使得开发者可以专注于界面设计,而无需过多关注底层实现。 在JSF编程中,以下几个关键知识点是至关重要的: 1. **组件模型**:JSF的组件模型允许开发者使用声明式的...
### JSF框架中使用的设计模式介绍 #### 一、引言 JavaServer Faces(简称JSF)是Java平台上的一个标准Web应用程序框架,由Java Community Process(JCP)定义为Web应用程序开发的标准模型。JSF提供了丰富的功能来...
在JavaServer Faces (JSF)框架中,数据表(DataTable)是展示和操作数据库或集合数据的核心组件。本文将深入探讨如何在JSF中实现数据表的动态绑定,以及完成CRUD(创建、读取、更新和删除)操作。 1. **JSF框架概述...
综上所述,JSF分页是一个涉及前端UI和后端数据处理的复杂过程,但借助组件库和良好的设计模式,可以轻松实现高效且用户友好的分页功能。通过合理优化和灵活扩展,可以适应各种复杂的分页场景。在实际开发中,应根据...
JSF遵循MVC(Model-View-Controller)设计模式,将业务逻辑、视图呈现和用户交互分离开来,使得开发者能够更专注于各自领域的代码编写。JSF的核心组件包括UI组件、事件处理、数据绑定和转换验证。 ### 2. UI组件库 ...
[Apress] JSF & HTML5 高级程序设计 (英文版) [Apress] Pro JSF and HTML5 Building Rich Internet Components (E-Book) ☆ 图书概要:☆ Pro JSF and ...
6. **设计JSF界面**:使用JSF的UI组件创建用户界面,将这些组件的数据绑定到Managed Bean的属性,从而实现数据的双向绑定。例如,使用`h:inputText`显示和编辑数据库记录,`h:commandButton`触发CRUD操作。 7. **...
这个“JSF与Hibernate整合的登陆”项目为初学者提供了一个实践基础Web应用开发的良好起点,涵盖了前端UI设计、后端数据处理以及两者间的整合。通过这个项目,学习者可以深入理解JSF和Hibernate的工作原理,并提升...
在IT行业中,JavaScript Server Faces(JSF)是一种用于构建企业级Web应用程序的Java框架,它遵循Model-View-Controller(MVC)设计模式。JSF提供了丰富的组件库和生命周期管理,使得开发人员能够更高效地处理用户...
JSF遵循MVC设计模式,其中视图由Facelets文件表示,模型由Managed Beans实现,控制器则是JSF框架自身。这种结构使得代码组织清晰,易于维护。 **9. JSF扩展** JSF框架是可扩展的,允许添加自定义组件、渲染器、EL...
JSF API设计得非常灵活,允许第三方提供者创建自定义组件、渲染器、转换器和验证器。这使得JSF能够适应各种不同的应用场景。 **9. JSF 1.2 TLD文档** `jsf12-tlddoc`可能是指JSF 1.2版本的Tag Library Descriptors ...
JSF入门如果您是从使用的角度来看JSF,则您不用理会HTTP、数据转换等细节,JSF将细节都隐藏起来了,无论您是网页设计人员或是应用程序设计人员,都可以使用自己熟悉的方式来看JSF。 入门 藉由以下的几个主题,可以...
JavaScript Faces (JSF) 是Java平台上的一种用于构建用户界面的模型-视图-控制器(MVC)框架,尤其适合网页和应用程序的设计与开发。JSF旨在简化Web应用开发,通过提供可重用的UI组件和自动处理请求-响应的流程,让...
JSF的核心是基于组件的开发方法,允许开发者通过拖放组件来设计用户界面,然后编写相应的事件处理代码和后端逻辑。 在JSF的编程模型中,组件被映射到服务器端的Java Bean对象上,这些Bean对象通常被称为 Managed...
二、JSF的设计模式与架构:JSF遵循经典的Model-View-Controller (MVC) 设计模式,但在Web环境中进行了必要的调整。模型(Model)负责存储数据和业务逻辑;视图(View)负责展示数据;控制器(Controller)则处理用户的输入...
在提供的"JSF趙剣.pdf"文件中,可能会详细介绍以上概念以及更多关于如何实际操作JSF实例的步骤和技巧,包括如何配置环境、创建和使用Managed Beans、设计用户界面、处理表单提交以及调试和优化JSF应用程序的方法...
JavaServer Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端Web应用程序框架,它遵循Model-View-Controller(MVC)设计模式。JSF 1.2是该框架的一个较早版本,发布于2006年,提供了一系列增强功能和改进...