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;
}

}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值