extremecomponents相关大全

article/2025/9/21 15:37:26

 

安装要求
1、Servlet 2.3 或更高
2、 JDK 1.3.1 或更高

最小的Jars需求
1、commons-beanutils 1.6
2、commons-collections 3.0
3、 commons-lang 2.0
4、 commons-logging 1.0.4
5、 standard 1.0.2

PDF 导出要用到的包:
1、 avalon-framework 4.0
2、batik 1.5-fop-0.20-5
3、 fop 0.20.5
4、 xalan 2.5.1
5、 xercesImpl 2.6.1
6、 xml-apis 2.0.2
XLS 导出要用到的包:
1、 poi-2.5.1.jar

 

格式化输出表单中的数据

Q:怎么样格式化输出表单中的数据

A: 你可以设置列的cell:

 

  1. 日期格式化: cell = " date " format = " yyyy-MM-dd "
  2. 数字格式化: cell="currency" format="###,###,##0.00" 

在web.xml中添加编码过滤器配置:

 <filter>   

 <filter-name>Set Character Encoding</filter-name>

    <filter-class>filters.SetCharacterEncodingFilter</filter-class>   

 <init-param>    

  <param-name>encoding</param-name>     

<param-value>gb2312</param-value> 

   </init-param> 

</filter>

  <filter-mapping>  

  <filter-name>Set Character Encoding</filter-name>

    <url-pattern>/*</url-pattern> 

</filter-mapping>

 

<!--配置导出功能的过滤器-->

<filter>

<filter-name>eXtremeExport</filter-name>

<filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>eXtremeExport</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping> 

在extComments中加入链接

Q:怎么样加入链接

A: 你可以参考下例:

            <ec:table
var="pres"
items="presidents"
action="${pageContext.request.contextPath}/compact.run"
imagePath="${pageContext.request.contextPath}/images/table/compact/*.gif"
view="compact"
title="Compact Toolbar View"
showTooltips="false"
>
<ec:exportPdf
fileName="output.pdf"
tooltip="Export PDF"
headerColor="black"
headerBackgroundColor="#b6c2da"
headerTitle="Presidents"
text="PDF"
/>
<ec:exportXls
fileName="output.xls"
tooltip="Export Excel"
text="XLS"
/>
<ec:row>
<ec:column property="fullName" title="Name">
<a href="http://www.whitehouse.gov/history/presidents/">${pres.fullName}</a>
</ec:column>
<ec:column property="nickName"/>
<ec:column property="term"/>
<ec:column property="born" cell="date"/>
<ec:column property="died" cell="date"/>
<ec:column property="career"/>
</ec:row>
</ec:table>
Limit数据端分页

package com.sinovs.saler.webapp.action;

 

import java.util.List;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.DispatchAction;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.action.ActionMessage;

import org.apache.struts.action.ActionMessages;

import org.extremecomponents.table.context.Context;

import org.extremecomponents.table.context.HttpServletRequestContext;

import org.extremecomponents.table.core.Preferences;

import org.extremecomponents.table.core.PreferencesConstants;

import org.extremecomponents.table.core.TableConstants;

import org.extremecomponents.table.core.TableModelUtils;

import org.extremecomponents.table.core.TableProperties;

import org.extremecomponents.table.limit.Limit;

import org.extremecomponents.table.limit.LimitFactory;

import org.extremecomponents.table.limit.TableLimit;

import org.extremecomponents.table.limit.TableLimitFactory;

 

import com.sinovs.saler.model.Saler;

import com.sinovs.saler.service.SalerManager;

 

 

public final class SalerAction extends DispatchAction {

  

    public ActionForward search(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response)

           throws Exception {

      //从spring中得到的bean

 

       SalerManager mgr = (SalerManager) getBean("salerManager");

       /**

        * controller首先需要创建一个Limit

        */

       String tableId = "ec";

       Context context = new HttpServletRequestContext(request);

       LimitFactory limitFactory = new TableLimitFactory(context, tableId);

       Limit limit = new TableLimit(limitFactory);

       /**

        * 得到系统默认的页面显示大小

        */

       Preferences preferences = new TableProperties();

       preferences.init(null, TableModelUtils.getPreferencesLocation(context));

 

       String crdStr = tableId + "_" + TableConstants.CURRENT_ROWS_DISPLAYED;

       /**

        * 注意:此处取值时,如果后台配置文件里有配置,就从里面取,反之取15

        */

       int defaultRowsDisplayed = Integer.parseInt(preferences

              .getPreference(PreferencesConstants.TABLE_ROWS_DISPLAYED));

       if (request.getParameter(crdStr) != null) {

           defaultRowsDisplayed = Integer.parseInt(request

                  .getParameter(crdStr));

       }

 

       /**

        * limit需要得到所有的行来得到行的信息

        */

 

 

       int totalRows = mgr.getTotalSalers(limit);

 

       limit.setRowAttributes(totalRows, defaultRowsDisplayed);

       /**

        * 需要从services得到Collection数据

        */

       List list = mgr.getSalers(limit);

 

       /**

        * 将Collections和totalRow这些信息传送回JSP以便eXtremeTable知道如何显示这些信息

        */

       request.setAttribute("list", list);

       request.setAttribute("totalRows", new Integer(totalRows));

 

       return mapping.findForward("list");

    }

 

}

 SalerManagerImpl

/**

     * controller需要到第一条信息就是总行数。

     */

    private final static String salersQuery = "FROM Saler ";

 

    private final static String totalSalersQuery = "SELECT count(*) FROM Saler ";

 

    public int getTotalSalers(Limit limit) {

       String totalQuery = totalSalersQuery;

       String modTotalQuery = filterQuery(limit.getFilterSet(), totalQuery);

       int totalRows = dao.getTotalSalers(modTotalQuery);

       return totalRows;

    }

 

    public List getSalers(Limit limit) {

       String query = salersQuery;

       String modSalersQuery = filterQuery(limit.getFilterSet(), query);

       modSalersQuery = sortQuery(limit.getSort(), modSalersQuery);

       return dao.getSalers(modSalersQuery, limit);

 

    }

 

    private String filterQuery(FilterSet filterSet, String query) {

       if (!filterSet.isFiltered() || filterSet.isCleared()) {

           return query;

       }

 

       Filter filters[] = filterSet.getFilters();

       for (int i = 0; i < filters.length; i++) {

           Filter filter = filters[i];

           String property = filter.getProperty();

           String value = filter.getValue();

           query = filterQuery(query, property, value);

       }

 

       return query;

    }

 

    public String filterQuery(String query, String property, String value) {

       StringBuffer result = new StringBuffer(query);

 

       if (query.indexOf("WHERE") == -1) {

           result.append(" WHERE 1 = 1 "); // stub WHERE clause so can just

           // append AND clause

       }

 

       result.append(" AND " + property + " like '%" + value + "%'");

 

       return result.toString();

    }

 

    private String sortQuery(Sort sort, String query) {

       if (!sort.isSorted()) {

           return query;

       }

 

       String property = sort.getProperty();

       String sortOrder = sort.getSortOrder();

 

       return sortQuery(query, property, sortOrder);

    }

 

    public String sortQuery(String query, String property, String sortOrder) {

       StringBuffer result = new StringBuffer(query + " ORDER BY ");

 

       result.append(property + " " + sortOrder);

       return result.toString();

    }

 

SalerDaoHibernate

/**

     * 得到数据总行数

     */

    public int getTotalSalers(String query) {

       int totalRows = 0;

       List list = getHibernateTemplate().find(query);

       if (list.size() > 0) {

           totalRows = ((Integer) list.get(0)).intValue();

       }

       return totalRows;

    }

 

    /**

     * 根据HQL语句的到纪录列表

     */

    public List getSalers(String query, Limit limit) {

       Session session = this.getSession();

       Query q = session.createQuery(query);

       q.setFirstResult((limit.getPage() - 1)

              * limit.getCurrentRowsDisplayed());

       q.setMaxResults(limit.getCurrentRowsDisplayed());

       return q.list();

    }

页面  

<ec:table

       items="salerList"

       var="saler"

       action="${pageContext.request.contextPath}/saler.do?method=search"

       imagePath="${pageContext.request.contextPath}/images/table/*.gif"

       title="saler.list.title"

       width="80%"

       retrieveRowsCallback="org.extremecomponents.table.callback.LimitCallback" filterRowsCallback="org.extremecomponents.table.callback.LimitCallback" sortRowsCallback="org.extremecomponents.table.callback.LimitCallback"

       rowsDisplayed="16"

       >

       <ec:exportXls fileName="presidents.xls" tooltip="Export Excel"/>

       <ec:row  highlightRow="true">

           <ec:column property="rowcount" cell="rowCount" sortable="false" filterable="false" title="ID" width="60"/>

           <ec:column property="salerName" title="saler.salername"/>

           <ec:column property="salerPhone" title="saler.salerphone"/>

           <ec:column property="id" title="saler.button.mod" filterable="false" viewsAllowed="html" sortable="false">

           <a href="${pageContext.request.contextPath}/saler.do?method=edit&amp;id=${saler.id}"><bean:message key="saler.button.mod"/></a>

           </ec:column>

           <ec:column property="id" title="saler.button.delete" filterable="false" sortable="false" viewsAllowed="html">

           <a href="${pageContext.request.contextPath}/saler.do?method=delete&amp;id=${saler.id}"><bean:message key="saler.button.delete"/></a>

           </ec:column>

       </ec:row>

    </ec:table> 

创建Limit

首先你需要通过LimitFactory得到一个Limit实例:

Context context = new HttpServletRequestContext(request);
LimitFactory limitFactory = new TableLimitFactory(context, tableId);
Limit limit = new TableLimit(limitFactory);


http://chatgpt.dhexx.cn/article/oY00MsPS.shtml

相关文章

ExtremeComponents源码解析(一)

一、前言 因参与公司框架改造&#xff0c;在负责前端table组件选型时&#xff0c;原本选了jqGrid和Bootstraptable作为备选方案&#xff0c;评审会上&#xff0c;武哥提了EXtremeComponents&#xff0c;让我也去了解下&#xff0c;看下合不合适&#xff0c;在此机缘下&#xff…

eXtremeComponents的eXtremeTable分页特性

<script type"text/javascript"> </script> <script type"text/javascript" src"http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> eXtremeComponents的eXtremeTable是一套很好的分页标签&#xf…

Android Dialog

创建对话框 Showing a Dialog 显示对话框 Dismissing a Dialog 解除对话框 Using dismiss listeners 使用解除监听器Creating an AlertDialog 创建警告对话框 Adding buttons 增加按钮 Adding a list 增加列表 Adding checkboxes and radio buttons 增加单选框和复选框Creating…

关于DialogResult

在程序中&#xff0c;经常会弹出一个对话框来让用户填写一些信息&#xff0c;填写完成后&#xff0c;当用户点击“确定”按钮后&#xff0c;在主窗体中进行其他的处理。比如一个简单的例子&#xff0c;在主窗体中有一个菜单&#xff0c;是“增加用户”&#xff0c;当点击这个菜…

dialogFragment---dialog

详解一&#xff1a; Android提供alert、prompt、pick-list&#xff0c;单选、多选&#xff0c;progress、time-picker和date-picker对话框&#xff0c;并提供自定义的dialog。在Android 3.0后&#xff0c;dialog基于fragment&#xff0c;并对之前版本提供兼容支持库&#xff0c…

Android Dialog

Android Dialog 创建对话框 一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用程序直接相关的小功能. Android API 支持下列类型的对话框对象: 警告对话框 AlertDialog: 一…

Dialogs(对话框)

对话框 对话框是一种提示用户去做出选择或输入其他信息的小窗口。 对话框不填充屏幕并且通常被用于在执行前需要用户做出决定的模态事件。 对话框设计 阅读 Dialogs 设计指南&#xff0c;获取包括语言规范等关于如何设计对话框的更多信息。 虽然 Dialog 类是对话框的基类&#…

【Android Dialog】Dialog

AlertDialog Dialog类是所有弹窗的父类&#xff0c;官方建议我们不要直接实例化它&#xff0c;而是使用其子类来获取实例。AlertDialog是系统提供的一个直接子类&#xff0c;它能帮助我们快速构建出不同类型的弹窗。接下来就看下各种类型弹窗的使用。 1、普通对话框 /*** Al…

DIALOG

[SAP]屏幕Dynpro 原文链接&#xff1a;http://www.cnblogs.com/jiangzhengjun/p/4292250.html 对话屏幕Dynpro(SE51). 11 屏幕元素... 11 屏幕属性... 11 PAI事件的触发、屏幕元素Function Code设置... 12 屏幕流逻辑Screen Flow Logic. 12 对话屏幕中的字段命名大小写问题...…

HTML基础之表单提交

表单提交 在网页上&#xff0c;一般都会有让你输入信息进行校验或者检索的地方&#xff0c;比如搜索栏或者输入账号密码进行登录的地方&#xff0c;当我们输入数据之后&#xff0c;单击确定或者搜索等按键的时候&#xff0c;网页就会把我们输入到输入框中的信息发送到与前端网…

JavaScript之Ajax-axios表单提交

目录 一.表单概念 二.表单提交 三.FormData语法 四.头像上传模板 五.请求体类型 六.图书管理(增删改查) 七.axios语法优化写法 优化1: axios全局配置 优化2: 默认的method 优化3: axios的快捷方法 一.表单概念 form标签&#xff08;表单&#xff09;是用来收集用户…

表单提交后跳转指定链接

表单的作用可以根据场景的变化而变化&#xff0c;可以是问卷调查、故障报修、自助下单等多种业务场景。如需提交后进行下一步操作&#xff0c;如成功提交咨询申请后自动跳转到咨询详情页&#xff0c;可以通过设置提交扩展&#xff0c;实现表单提交后跳转指定链接。 当跳转开启…

jquery form表单提交

使用jquery 进行form表单提交 文章目录 使用jquery 进行form表单提交先上结果&#xff1a;代码html代码 ---index.htmljs代码---index.js代码用到的jquery.js、select2的css和js在我项目里面有 下载地址 我这里使用了多选框&#xff08;传输到后端时&#xff0c;用对象接收&…

表单提交和超链接请求传递参数的几种方式

表单提交和超链接请求传递参数的几种方式 这段时间在使用easy-ui的datagrid&#xff0c;他有自己提交表单的方式&#xff0c;所以就整理整理页面对参数的提交方式&#xff1a; 注&#xff1a;下面代码都已经过测试。 1. HTML提交表单 HTML提交表单简单易操作&#xff0c;依靠…

模拟html post表单提交

一、打开自动提交访问 设置好表单账号密码&#xff0c;然后访问指定地址。就能自动提交登录并跳转到首页 1、填写访问表单信息 设置好表单账号密码 <input name"account" <input id"password" name"password" 然后填上访问地址action …

02 Ajax表单提交

目录 一、表单概念 1.表单 2.提交的两种方式 二、form-serize与FormData 1.form-serize 2.FormData 三、文件上传案例分析 以下的既为本文的核心概括 一、表单概念 1.表单 form标签&#xff08;表单&#xff09;是用来收集用户输入的信息。 表单构成&#xff1a; 表单标签&a…

Form表单提交

Form表单提交 form表单提交&#xff0c;表单提交分两种&#xff1a;自动提交 和 手动提交&#xff0c; form表单提交又分&#xff1a;post提交和get提交&#xff0c;以下用的都是post提交 一.自动提交表单&#xff1a; 自动提交表单&#xff0c;我们可以通过框架引用&#…

html 提交form表单提交数据格式,form表单提交数据

form表单提交的几种方法 HTML表单提交的几种方式方式一:通过submit按钮提交方式二:通过一般按钮button提交1/3javascript">functionsubmit1(){varform1=document.getElementById("form1");form1.action="bjpowernode.html";form1.submit();方式三…

JavaScript表单提交

表单提交在前端编程阶段中也是一个重点。它是由页面数据保存到后台数据库的重要枢纽&#xff0c;通过表单提交的方式将数据上传到数据库进行保存。同时这些数据也包含用户信息、统计信息、日志信息等等。 数据的信息不同&#xff0c;上传的方式也不同。在JavaScript中有四种种表…

表单提交的四种方式

表单提交的四种方式开发工具与关键技术&#xff1a;VS &#xff0c;JavaScript &#xff0c;Ajax 作者&#xff1a;刘任锋 撰写时间&#xff1a;2021年5月7日内容&#xff1a;将from表单里的内容提交到控制器上。 HTML布局 JS&#xff1a;先获取姓名&#xff0c;性别&#xff0…