博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSF---->表格处理
阅读量:5961 次
发布时间:2019-06-19

本文共 3526 字,大约阅读时间需要 11 分钟。

JSF表格

<h:dataTable>标签显示表格

h:dataTable的value属性值绑定的对象可以使一下类型

  1. 阵列
  2.  java.util.List的实例
  3. java.sql.ResultSet的实例
  4. javax.servlet.jsp.jstl.sql.Result的实例
  5. javax.faces.model.DataModel的实例

对于前四种型态,JSF实际上是以javax.faces.model.DataModel加以包装,DataModel是个抽象类别,其子类别都是位于 javax.faces.model这个package下:ArrayDataModel、ListDataModel 、ResultDataModel 、ResultSetDataModel 、ScalarDataModel

1、list形式

package wsz.ncepu;import java.util.*;public class TableBean {	private List
userList; public List
getUserList() { if (userList == null) { userList = new ArrayList
(); userList.add(new User("张三", "123456")); userList.add(new User("李四", "123456")); userList.add(new User("王五", "123456")); } return userList; }}

index.jsp

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>			jsf		

2、DataModel类型

TableBean.java

package wsz.ncepu;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 User("张三", "123456")); userList.add(new User("李四", "123456")); userList.add(new User("王五", "123456")); return userList; } public int getSelectedRowIndex() { return rowIndex; } public String select() { rowIndex = model.getRowIndex(); return "success"; }}

在这个Bean中,(getUserList为私有方法,页面的datatable如果绑定userList则有错误,找不到属性)我们直接设定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" %>
Selected Row:

faces-config.xml

tableBean
wsz.ncepu.TableBean
request

styles.css

.orders { border: thin solid black; } .ordersHeader {text-align:center; font-style:italic; color: Snow; background: Teal; } .evenColumn{ height: 25px; text-align: center; background: MediumTurquoise; }.oddColumn { text-align: center; background: PowderBlue; }

DataModel的rowIndex是从0开始计算,当处理ActionEvent时,JSF会逐次递增rowIndex的值,这让您可以得知目前正在处理的是哪一个row

 

转载地址:http://bcjax.baihongyu.com/

你可能感兴趣的文章
Nginx 的软件负载均衡详解
查看>>
往事两三则
查看>>
使用LiveData和DataBinding进行双向绑定
查看>>
Convert Url to InetAddress
查看>>
oracle 限制特定ip登录
查看>>
解酒方法
查看>>
vi 命令
查看>>
1.1
查看>>
[logstash-input-redis]插件使用详解
查看>>
优化应用的电池寿命(笔记)-1
查看>>
SSH Secure Shell Client
查看>>
JFinal源码分析------初始化那些事儿
查看>>
处理 允许远程协助连接这台计算机 灰色
查看>>
使用Jquery 加载页面时调用JS
查看>>
css+div+jquery弹出层
查看>>
求职相关(链接,不定期更新)
查看>>
pdo 连接数据库 报错 could not find driver 解决方法
查看>>
设计模式之策略模式
查看>>
JVM介绍
查看>>
Qt中使用QToolBox实现抽屉效果
查看>>