`
175203509
  • 浏览: 6464 次
  • 性别: Icon_minigender_1
  • 来自: 淄博
社区版块
存档分类
最新评论

Jmesa简单使用

阅读更多
package com.jesea.test;
 

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import jxl.demo.CSV;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts2.ServletActionContext;
import org.jmesa.facade.TableFacade;
import org.jmesa.facade.TableFacadeImpl;
import org.jmesa.limit.Limit;

import com.opensymphony.xwork2.Action;
import static org.jmesa.limit.ExportType.CSV;
import static org.jmesa.limit.ExportType.JEXCEL;
import static org.jmesa.limit.ExportType.PDF;
import org.jmesa.core.filter.DateFilterMatcher;
import org.jmesa.core.filter.MatcherKey;
import org.jmesa.facade.TableFacade;
import org.jmesa.facade.TableFacadeImpl;
import org.jmesa.limit.Limit;
import org.jmesa.util.ItemUtils;
import org.jmesa.view.component.Column;
import org.jmesa.view.component.Row;
import org.jmesa.view.component.Table;
import org.jmesa.view.editor.BasicCellEditor;
import org.jmesa.view.editor.CellEditor;
import org.jmesa.view.editor.DateCellEditor;
import org.jmesa.view.html.HtmlBuilder;
import org.jmesa.view.html.component.HtmlColumn;
import org.jmesa.view.html.component.HtmlRow;
import org.jmesa.view.html.component.HtmlTable;
import org.jmesa.view.html.editor.DroplistFilterEditor;
import static org.jmesa.facade.TableFacadeFactory.createTableFacade;

import com.sthdemo.commons.AbstractAction;
 

public class TestAction extends AbstractAction {

      
    private int totalRows;
    private String html = null;
    private String Patch;
    HttpServletRequest request;
    HttpServletResponse response;
 

    private String id;
 

    public String getHtml() {
	return html;
    }

    public void setHtml(String html) {
	this.html = html;
    }

    public String presidents() throws Exception {

	request = ServletActionContext.getRequest();
	response = ServletActionContext.getResponse();
	totalRows =200 ;
 
	//Collection  items = productService.findProduct(1, totalRows); 

	List items = null ; // blogAllList.getAllBlogList();

	//创建id为presidents的表单
	TableFacade tableFacade = new TableFacadeImpl("presidents", request);
	tableFacade.setItems(items); // set the items
	//导出格式
	tableFacade.setExportTypes(response, CSV, JEXCEL);
	tableFacade.setStateAttr("restore"); // return to the table in the same state that the user left it.

	Limit limit = tableFacade.getLimit();
	if (limit.isExported()) {
	    export(tableFacade);
	    return null; // In Spring returning null tells the controller not to do anything.
	}

	String html = html(tableFacade);
	request.setAttribute("presidents", html); // Set the Html in the request for the JSP.

	return SUCCESS;

    }

    private String html(TableFacade tableFacade) {
	// add a custom filter matcher to be the same pattern as the cell editor used.
	tableFacade.addFilterMatcher(new MatcherKey(Date.class, "createdTime"),
		new DateFilterMatcher("MM/yyyy"));

	//设定表格属性,注意此处的url用于诸如增加、删除、修改、查询操作,并不是实际的数据库表属性,
	//但表单需要有对应的po对新,因此需要在Person中增加此属性
	//  "bcontent" ,  "bcon" ,  "bcont" , 
	tableFacade.setColumnProperties("bname", "bdate", "edit", "delete");

	HtmlTable table = (HtmlTable) tableFacade.getTable();
	table.setCaption("Presidents");
	table.getTableRenderer().setWidth("700px");

	HtmlRow row = table.getRow();

	//   HtmlColumn firstName = row.getColumn("id");
	//  firstName.setTitle("编号");
	//    firstName.setFilterable(false);
	//   firstName.setSortable(false);

	HtmlColumn lastName = row.getColumn("bname");
	lastName.setTitle("名称");
	//lastName.setFilterable(false);
	lastName.setSortable(false);

	//   HtmlColumn price = row.getColumn("price");
	//   price.setTitle("金额 ");
	//   price.setFilterable(false);
	//   price.setSortable(false);

	HtmlColumn createdTime = row.getColumn("bdate");
	createdTime.setTitle("日期");
	createdTime.setFilterable(false);
	createdTime.setSortable(false);

	// HtmlColumn career = row.getColumn("createdTime");
	// career.getFilterRenderer().setFilterEditor(new DroplistFilterEditor());

	Column born = row.getColumn("bdate");
	born.getCellRenderer().setCellEditor(new DateCellEditor(" yyyy-MM-DD"));

	HtmlColumn Edit = row.getColumn("edit");
	Edit.setTitle("操作");
	Edit.setFilterable(false);
	Edit.setSortable(false);
	Edit.getCellRenderer().setCellEditor(new CellEditor() {
	    public Object getValue(Object item, String property, int rowcount) {
		Object value = new BasicCellEditor().getValue(item, property,
			rowcount);
		HtmlBuilder html = new HtmlBuilder();
		//取得每一行的id号
		Object id = ItemUtils.getItemValue(item, "id");

		String js = request.getContextPath() + "/editer.action?id="
			+ id;
		html.a().href().quote().append(js).quote().close();
		html.append("编辑");
		html.aEnd();
		return html.toString();
	    }
	});

	HtmlColumn delete = row.getColumn("delete");
	delete.setTitle("操作");
	delete.setFilterable(false);
	delete.setSortable(false);

	delete.getCellRenderer().setCellEditor(new CellEditor() {
	    public Object getValue(Object item, String property, int rowcount) {
		Object value = new BasicCellEditor().getValue(item, property,
			rowcount);
		HtmlBuilder html = new HtmlBuilder();
		//取得每一行的id号
		Object id = ItemUtils.getItemValue(item, "id");

		String js = request.getContextPath() + "/president.action?id="
			+ id;
		html.a().href().quote().append(js).quote().close();
		html.append("删除");
		html.aEnd();
		return html.toString();
	    }
	});

	/*  
	// 用于演示在表格中增加超链接
	firstName.getCellRenderer().setCellEditor(new CellEditor() {
	    public Object getValue(Object item, String property, int rowcount) {
	        Object value = new BasicCellEditor().getValue(item, property, rowcount);
	        HtmlBuilder html = new HtmlBuilder();
	        html.a().href().quote().append("http://www.whitehouse.gov/history/presidents/").quote().close();
	        html.append(value);
	        html.aEnd();
	        return html.toString();
	    }
	});
	 */
	return tableFacade.render();
    }

    private void export(TableFacade tableFacade) {
	// set the column properties
	tableFacade.setColumnProperties("bname", "bdate");

	Table table = tableFacade.getTable();
	table.setCaption("Presidents");

	Row row = table.getRow();

	//  Column firstName = row.getColumn("id");
	//  firstName.setTitle("id");

	Column lastName = row.getColumn("bname");
	lastName.setTitle("bname");

	Column price = row.getColumn("bdate");
	price.setTitle("bdate");

	//  Column createdTime = row.getColumn("createdTime");
	//  createdTime.setTitle("createdTime");

	tableFacade.render();
    }

    //修改方法 
    public String editer() throws Exception {
	//Product product =new Product();
	request = ServletActionContext.getRequest();
	String deleteId = request.getParameter("id");
	System.out.print(deleteId);
	int id = Integer.parseInt(deleteId);

	return SUCCESS;
    }

    public String getId() {
	return id;
    }

    public void setId(String id) {
	this.id = id;
    }

}
分享到:
评论

相关推荐

    jmesa的一个例子

    在本示例中,我们将探讨如何使用Jmesa进行数据操作,虽然没有直接提供jar包,但我们可以从其源代码或官方仓库获取。 **Jmesa核心功能** 1. **数据流处理**: Jmesa支持对连续的数据流进行处理,它可以处理来自各种...

    jmesa2.3.4

    1. **数据接入**:jmesa2.3.4支持多种数据源,包括但不限于CSV、Excel、数据库等,这使得数据导入和导出变得极为简单,极大地拓宽了其使用范围。 2. **数据处理**:内置了丰富的数据预处理和清洗功能,如数据转换、...

    jmesa 入门

    **JMESa 入门详解** JMESa(Java Message Expression Language for SQL Access)是一种用于在...无论是简单的查询还是复杂的业务逻辑,JMESa都能胜任。通过熟练掌握JMESa,开发者可以提升工作效率,降低开发复杂度。

    JMESA SERVLET

    本项目是基于JMESA实现的一个简单的Servlet应用,没有依赖其他框架,因此对于初学者来说,更容易理解和学习。 ### 1. JMESA 简介 JMESA的核心功能在于其强大的数据转换能力,能够将Java集合、数据库结果集等数据源...

    jmesa的源码解读(共五部分)

    最后,`org.jmesa.web`包为Web环境中的Jmesa使用提供便利的类,帮助在Web应用中集成和操作Jmesa的功能。 在`limit`包中,`Limit`接口的实现通常是简单的,但其组合了`RowSelect`、`FilterSet`和`SortSet`等组件,...

    JMesa源代码解读(中文版pdf格式)

    专门为在Web环境中使用JMesa提供一系列便利类。这些类通常会处理与HTTP请求相关的操作,例如从请求中提取参数、处理响应等。 #### 二、核心接口及类详解 ##### 1. Limit接口及其组成部分 `Limit`接口是`org.jmesa...

    jsp-data-grid:这个 JSP 标签库提供了一种使用 Java 和 JSP 创建数据网格的简单方法

    这个 JSP 标记库提供了一种使用 Java 和 JSP 创建数据网格的简单方法。 它提供了与 Spring 框架和 Java Persistence API (JPA) 的轻松集成。 也可以选择将一些 Ajax 功能附加到网格。 有很多不同的 JSP 网格实现。 ...

    Stripes 快速入门 pdf 中文版 下载

    使用JMesa进行分页处理 JMesa是一个更为强大的分页工具,不仅支持基本的分页功能,还提供了排序、过滤等高级特性。 #### 7.2. 分步提交 对于复杂的表单,分步提交是一种很好的用户体验设计。Stripes通过一系列...

    stripes 和css 一些常用功能

    分页显示可以使用DisplayTag或JMesa等第三方库来实现。分步提交允许用户在一系列表单中逐步提交数据,而不需要一次性完成全部数据的输入。 在文件处理方面,Stripes支持单个文件上传和多文件上传,以及文件下载功能...

    Web应用前端技术的探索与实践

    3.3.2 简单、直观的DIV布局 7 3.3.3 DIV布局问题的终极解决方案 9 3.3.4 解决DIV被撑爆的问题 12 3.3.4.1 DIV撑爆的问题 12 3.3.4.2 图片撑爆问题的解决办法 13 3.3.4.3 文字撑爆问题的解决办法 13 3.4 Java Web应用...

Global site tag (gtag.js) - Google Analytics