今天上午Q?006/04/21Q我和Jeff是否在发行包进行了商量QJeff的观Ҏ(gu)发行包中不包?
M形式的文,使用者可以从eXtremeComponents|站?
wiki
扑ֈ
相关的文。wiki是大家一L(fng)护的Q内容和相关的修正能够尽快地传递给使用者。但考虑到我们中国程序员的用习(fn)惯,Jeff同意我以前译的参考文?
包含到发行包中。提C:(x)本文的部分内容可能不是最新的Q请xeXtremeComponents|站?
wiki
或?Google?
eXtremeComponents_CN
用户l。当?dng)你也可以在??
blog
中找到更新升U的提示。所有发行包中没有包含的文Q都能在上述3个地Ҏ(gu)到?
]]>eXtremeComponents相关http://www.tkk7.com/lucky/archive/2006/04/20/42126.htmlLuckyLuckyThu, 20 Apr 2006 03:21:00 GMThttp://www.tkk7.com/lucky/archive/2006/04/20/42126.htmlhttp://www.tkk7.com/lucky/comments/42126.htmlhttp://www.tkk7.com/lucky/archive/2006/04/20/42126.html#Feedback9http://www.tkk7.com/lucky/comments/commentRss/42126.htmlhttp://www.tkk7.com/lucky/services/trackbacks/42126.html 1Q?星期六和Jeff一起修正了Q白提出的eXtremeComponents使用limit时的一个问题:(x) limit的sort的property属性,q回的是q个属性的alias。现在改为,Sort里增加一个alias属性,q样的话既可以返回aliasQ又能得到property 2Q?extremeComponents的发布版Q不?x)再带文,大家要参考的话可以访问wiki。?span class="q">I am hoping that by having it on the wiki
that more people will make corrections and add on to it. ”?Q不q考虑到咱们的?fn)惯Q我现在q在和Jeff商量。如果不行的话,我在wiki里提供下载地址。不q大家能上网的话Q还是徏议大家看wiki或者我的blogQ因为很多更新或修正Q没法在发布的文中反应。这也是我ؓ(f)什么不提供参考文下载的一个原因?br /> 3Q我在google上徏了一个组QeXtremeComponents_CN eXtremeComponents_CN是eXtremeComponents的中国用L(fng),主要宗旨: a. 帮助中文开发h员解决用eXtremeComponents中出现的问题 b. eXtremeComponents的扩展定制开发的l织、讨论、实?br /> 创徏q个l一是帮助国内开发h员的交流问题Q二是帮助Jeff分摊一些压力。关于b 现在只是我的一个想法,现在也正在与Jeff商量。所以这个组现在的主要目标是a?br /> 当然如果大家?font color="#ff0000">目旉很紧的情况下Q也可以在线和我联系?br /> 我的MSNQ?zlh326@msn.com emailQ?xplucky@gmail.com
/* * Copyright 2004 original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.extremecomponents.table.filter;
boolean done =false; boolean isAscii =true; byte[] buf = exportFileName.getBytes(); for (int i =0; i < buf.length; i++) { if (isAscii) isAscii = det.isAscii(buf, i); if (!isAscii &&!done) done = det.DoIt(buf, i, false); } det.DataEnd();
if (isAscii) { return exportFileName; } return toUtf8(exportFileName);
}
publicstatic String toUtf8(String src) { byte[] b = src.getBytes(); char[] c =newchar[b.length]; for (int i =0; i < b.length; i++) { c[i] = (char) (b[i] &0x00FF); } returnnew String(c); }
/** * There can only be one table instance (tableId) per form. If the instance * variable exists that means there is an export being done. * * @param context * @return */ publicstatic String getTableId(Context context) { return context.getParameter(TableConstants.EXPORT_TABLE_ID); } }
/* * Copyright 1999-2001,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
/** * <p>Example filter that sets the character encoding to be used in parsing the * incoming request, either unconditionally or only if the client did not * specify a character encoding. Configuration of this filter is based on * the following initialization parameters:</p> * <ul> * <li><strong>encoding</strong> - The character encoding to be configured * for this request, either conditionally or unconditionally based on * the <code>ignore</code> initialization parameter. This parameter * is required, so there is no default.</li> * <li><strong>ignore</strong> - If set to "true", any character encoding * specified by the client is ignored, and the value returned by the * <code>selectEncoding()</code> method is set. If set to "false, * <code>selectEncoding()</code> is called <strong>only</strong> if the * client has not already specified an encoding. By default, this * parameter is set to "true".</li> * </ul> * * <p>Although this filter can be used unchanged, it is also easy to * subclass it and make the <code>selectEncoding()</code> method more * intelligent about what encoding to choose, based on characteristics of * the incoming request (such as the values of the <code>Accept-Language</code> * and <code>User-Agent</code> headers, or a value stashed in the current * user's session.</p> * * @author Craig McClanahan * @version $Revision: 1.3 $ $Date: 2004/02/28 03:35:22 $ */
public class SetCharacterEncodingFilter implements Filter {
/** * The default character encoding to set for requests that pass through * this filter. */ protected String encoding = null;
/** * The filter configuration object we are associated with. If this value * is null, this filter instance is not currently configured. */ protected FilterConfig filterConfig = null;
/** * Should a character encoding specified by the client be ignored? */ protected boolean ignore = true;
// --------------------------------------------------------- Public Methods
/** * Take this filter out of service. */ public void destroy() {
this.encoding = null; this.filterConfig = null;
}
/** * Select and set (if specified) the character encoding to be used to * interpret request parameters for this request. * * @param request The servlet request we are processing * @param result The servlet response we are creating * @param chain The filter chain we are processing * * @exception IOException if an input/output error occurs * @exception ServletException if a servlet error occurs */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// Conditionally select and set the character encoding to be used if (ignore || (request.getCharacterEncoding() == null)) { String encoding = selectEncoding(request); if (encoding != null) request.setCharacterEncoding(encoding); }
// Pass control on to the next filter chain.doFilter(request, response);
}
/** * Place this filter into service. * * @param filterConfig The filter configuration object */ public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); String value = filterConfig.getInitParameter("ignore"); if (value == null) this.ignore = true; else if (value.equalsIgnoreCase("true")) this.ignore = true; else if (value.equalsIgnoreCase("yes")) this.ignore = true; else this.ignore = false;
/** * Select an appropriate character encoding to be used, based on the * characteristics of the current request and/or filter initialization * parameters. If no character encoding should be set, return * <code>null</code>. * <p> * The default implementation unconditionally returns the value configured * by the <strong>encoding</strong> initialization parameter for this * filter. * * @param request The servlet request we are processing */ protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
在web.xml中添加编码过滤器配置Q?
<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>
3. 导出时中文文件名q
QQ关于导出时中文文g名ؓ(f)q的问?/p>
A: q是个bugQ徏议用英文文件名Q主要原因还是编码问题。我们现在正在想办法解决?/p>
4. 导出时文件内容ؕ?/h2>
QQ导出时文g内容q
A:首先L(fng)认用的是extremecomponents-1.0.1-M5-A4版以后的版本
ExcleQ?导出为Excle的中文问题已l修正,默认的情况下支持导出中文Q用户不需要Q何改?
PDF Q?׃extremecomponents使用了FOP来生成PDF文gQFOP在导Z文内Ҏ(gu)?x)生ؕ码。具体的解决Ҏ(gu) 大家可以参?a href="../archive/2006/03/10/34717.html" target="_top">最新eXtremeComponents包:(x)支持 PDF中文导出
]]>AJAX enabled eXtremeTable Tutorialhttp://www.tkk7.com/lucky/archive/2006/03/27/37625.htmlLuckyLuckyMon, 27 Mar 2006 08:12:00 GMThttp://www.tkk7.com/lucky/archive/2006/03/27/37625.htmlhttp://www.tkk7.com/lucky/comments/37625.htmlhttp://www.tkk7.com/lucky/archive/2006/03/27/37625.html#Feedback0http://www.tkk7.com/lucky/comments/commentRss/37625.htmlhttp://www.tkk7.com/lucky/services/trackbacks/37625.htmlwork in progress
Using AJAX with the eXtremeTable is a very simple and natural extension
to the existing functionality. Probably the best thing about the AJAX
integration is there is no integration at all. You are free to use
whatever AJAX toolkit you want. All you need to do is tell the
eXtremeTable what javascript to use when a table action is invoked. The
table actions meaning the filtering, sorting, paging, rows displayed
and exporting.
For my example I will be using the ultra cool DWR
toolkit. As will be demonstrated, the glue code required by DWR is very
minimal, which leaves us to just worry about constructing the table.
You can see the working example in action on the site!
The first thing to do is download the DWR toolkit. You should read the instructions on the site, but the following is what I needed to do to get things working:
Place the dwr-1.1.jar into the WEB-INF/lib directory
Create a dwr.xml file and place it in the WEB-INF directory
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
In a nutshell the create tag allows you to reference the POJO that
builds the table, along with the method to invoke. The signature tag
declares what the actual types are for the method that is invoked. In
this example the Assembler class getTable method will be called by
passing in a Map, with the form parameters, along with the
HttpServletRequest.
Reference the DWR servlet in the WEB-INF/web.xml file
This is setting up the DWR servlet that is used to call your POJO.
There is nothing more you should have to know about the servlet other
than how to set it up here.
DWR works with POJOs. This works great for our needs because the
eXtremeTable has a full API that feels very much like building a table
with the JSP tags. In fact the JSP tags are merely a front end for the
eXtremeTable Java API. First I will show the method that builds the
table.
Most of this code should be very self explanatory. You will see how
to build a TableModel in a second, but first you will notice that it is
the only object you will have to interact with to build the table. The
first step to building a table is use the TableModel to create the
Table, Row, Column and Export. Once you create one of the model objects
it needs to be added to the model. Until you actually add it the
TableModel, the model will not use it. Once you have everything
constructed then call model.assemble(); to build the table.
Probably the most interesting call is table.setOnInvokeAction("buildTable('assembler')");.
This is the javascript method that will be called when you invoke any
of the table actions (paging, filtering, sorting, etc..). If the table
onInvokeAction is left blank the default javascript method is to submit
the form that wraps the eXtremeTable, just like you would expect.
The other method of the Assembler class is getTable().
public class Assembler { public String getTable(Map parameterMap, HttpServletRequest request) { WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
Context context = null; if (parameterMap == null) { context = new HttpServletRequestContext(request); } else { context = new HttpServletRequestContext(request, parameterMap); }
TableModel model = new TableModelImpl(context); try { return build(model, presidents).toString(); } catch (Exception e) { e.printStackTrace(); }
return ""; } }
This method is a little busy, but it is doing double duty. It needs
to be called the first time by the Controller (if using Spring). If you use Struts this is the equivalent of the Action class.
Then, when using AJAX, this method also needs to be called, but this
time passing in a custom parameterMap. The parameterMap will contain
all the parameters for the eXtremeTable using AJAX. This should become
more clear once you see the Controller and the JSP.
The controller is called the first time to initially build the
table. It calls the POJO and then passes the table to the request.
Notice how null is sent in for the parameterMap. This is because the
first time the table is built there are no table actions the table
needs to be aware of.
Start constructing the JSP by importing the proper javascript files.
The only javascript file you need to include in your project is the
extremecomponents.js. The other declarations are used by DWR.
Lastly, declare the javascript to call the DWR hooks.
<script type="text/javascript"> function buildTable(form) { var parameterMap = getParameterMap(form); Assembler.getTable(parameterMap, showTable); }
function showTable(table) { document.getElementById('tableDiv').innerHTML=table; } </script>
The getParameterMap() method is included in the extremecomponents.js
file and will grab all the form parameters. You need to pass in a
reference to the form id that wraps the eXtremeTable. Remember that the
eXtremeTable is essentially a form component and the tableid is used as
the form id. By default the tableId is ec, but you usually want to set
a tableId so that code is easier to follow for people reading your
code. With the parameterMap you will then call the POJO getTable
method. The showTable is a callback that tells DWR what to call when it
returns from the getTable() method.
This tutorial described the steps needed to get the eXtremeTable
working with AJAX. One of the main things to keep in mind is there is
no actual integration with AJAX. You simply tell the eXtremeTable what
javascript to call when one of the table actions is invoked. The other
thing to get from this example is that the DWR toolkit works with POJOs
and can be easily used with any framework.
而言之(In a
nutshellQ创建(createQ标{օ许当Ҏ(gu)被调用时Q参照构需要的POJO。签名(signatureQ标{֣明了被调用方法用的实际
cd?本示例的AssemblercȝgetTableҎ(gu)通过传入一个MapQ包含form参数Q和HttpServletRequest?
public class Assembler { public String getTable(Map parameterMap, HttpServletRequest request) { WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext());
<script type="text/javascript"> function buildTable(form) { var parameterMap = getParameterMap(form); Assembler.getTable(parameterMap, showTable); }
function showTable(table) { document.getElementById('tableDiv').innerHTML=table; } </script>
getParameterMap()Ҏ(gu)包含在extremecomponents.js文g中,的到所有的form参数。你需要传入一?
form id的参照。记住,eXtremeTable本质上是一个forml徏Qtableid作ؓ(f)form
id使用。默认的tableId为ecQ但是你通常惌讄tableIdQ以C大家能更容易阅M的代码。你用parameterMap调用
POJO的getTableҎ(gu)。showTable是一个callback告诉DWR当从getTable()Ҏ(gu)q回时将调用什么操作?
I decided to do another milestone release because I made some
adjustments to the view code, and the eXtremeTable is now going to be
AJAX enabled (not part of build yet). These are big enough features
that I would really like to work perfectly before the release candidate.
The following features and enhancements represent the next
milestone build of the eXtremeTable. I was hoping to not have any
breakage going from the last milestone to this milestone. However,
after working through the implementation of the M4 view code I decided
I had to make one final change...going from static builders to concrete
classes. This will be the only breakage and only effects those with
custom views (custom cells too, but more gracefully deprecated). Even
then the changes can be easily implemented.
All the view builder classes are concrete and need to be
instantiated. This only effects developers that have created custom
views or custom cells. This was a much needed change to make the view
code as flexible as it needs to be. Having the builder classes be
static worked Ok, but there would be no opportunities to do anything
interesting in the future, and made creating custom views more
difficult. However, the methods are all the same yet and just requires
a builder class to be instantiated with an HtmlBuilder.
To make the transition easier the CellBuilder is still static,
but is now deprecated. The new (non-static) builder is called the
ColumnBuilder, which actually makes more sense as that is what is being
built.
public String getHtmlDisplay(TableModel model, Column column) { ColumnBuilder columnBuilder = new ColumnBuilder(column); columnBuilder.tdStart(); columnBuilder.tdBody(getCellValue(model, column)); columnBuilder.tdEnd(); return columnBuilder.toString(); }
As another example, now that the ColumnBuilder is not static I would write custom cells more like this:
public String getHtmlDisplay(TableModel model, Column column) { InputBuilder inputBuilder = new InputBuilder(column); inputBuilder.tdStart();
try { Object bean = model.getCurrentRowBean(); Integer id = new Integer(BeanUtils.getProperty(bean, "id")); inputBuilder.tdBody(id);
} catch (Exception e) {}
inputBuilder.tdEnd();
return inputBuilder.toString(); }
private static class InputBuilder extends ColumnBuilder { public InputBuilder(Column column) { super(column); }
public void tdBody(Integer id) { getHtmlBuilder().input("radio").name("location.id").id("location.id").value(id.toString()).onclick("populateLocationFields(this.value)"); getHtmlBuilder().xclose(); } } }
It is much cleaner to just extend the builder you care about and then build your custom implmentation.
In addition the toolbar code has been completely refactored, but
the implemenation was hidden behind the ToolbarBuilder class and so no
one should be effected by the changes.
Lastly, I am exploring creating a named toolbar feature that
would enable different toolbars to be referenced in the preferences and
on the table. The feature would use reflection to dynamically build the
toolbar. This would enable a developer to easily define a custom
toolbar through the preferences. For example a toolbar could be defined
to not include the last page for the Limit, or another toolbar that
does not include the rows displayed...things like that. If this is the
only reason you have a custom view you are better off waiting a week or
two until I get this done, unless you need one of the new features.
To use the State feature with the Limit feature you need to use the
TableLimitFactory constructor that accepts the state. When using the
state feature you should always give a unique tableId (in this example
called presidents) so the constructor with the state will require the
tableId also.
Context context = new HttpServletRequestContext(request); LimitFactory limitFactory = new TableLimitFactory(context, presidents, TableConstants.STATE_PERSIST, null); Limit limit = new TableLimit(limitFactory);
New Column filterOptions attribute / FilterOption interface.
New ColumnTag filterOptions attribute. Accepts a Collection of
filter options where each bean in the Collection implements the
FilterOption interface. Is used in conjunction with the
filterCell=droplist. Very useful when using the Limit to use a custom
droplist.
New Export encoding attribute / XlsView has Locale support.
By default the XlsView uses UTF-16 character encoding. If you need
to use unicode then use the new ExportTag encoding attribute. The
acceptable values are UTF and UNICODE.
Removed the style attribute from the Compact View title.
This was kind of bug in the view code as I hard coded the title of
the table when using the compact view. Just style (or move) the title
through the CSS titleRow attribute.
The TableModel is now an interface. This does not impact any code
except the TableAssembler. However, as mentioned below, assembling a
table with just Java code is even easier now.
When building an eXtremeTable in Java code in the last release you
would use the TableAssembler class. That code was refactored and
completely integrated into the TableModel. This makes the feature even
easier to use than before.
TableModel model = new TableModelImpl(context);
Table table = new Table(model); table.setItems(presidents); table.setAction("assembler.run"); table.setTitle("Presidents"); table.setShowTooltips(Boolean.FALSE); model.addTable(table);
Row row = new Row(model); row.setHighlightRow(Boolean.FALSE); model.addRow(row);
Column columnName = new Column(model); columnName.setProperty("fullName"); columnName.setIntercept((AssemblerIntercept.class).getName()); model.addColumn(columnName);
Column columnNickName = new Column(model); columnNickName.setProperty("nickName"); model.addColumn(columnNickName);
The tag attributes that are backed by an interface have the ability
to alias out the attribute to avoid having to give the fully qualified
package name. The ColumnsTag autoGenerateColumns attribute now includes
this feature.
TableTag bufferView attribute. The default is true to buffer the
view by default. This will improve the performance of the tag rendering
in that the html view is streamed right out to the response writer if
the bufferView is set to false. This does in theory improve the
performance but I only included the feature because I thought it would
be a nice feature. In general the eXtremeTable is very streamlined and
this is just an additional performance kick.
When creating a table with Java code using the eXtremeTable API it
is now possible to combine AJAX technology to render the view. For
those new to AJAX this means that the web page does not have to refresh
to navigate the eXtremeTable! This is very exciting and more
documentation will be coming out soon so that developers can start
testing and using this feature. The only real hook to use this feature
is to use the new Table onInvokeAction attribute to give the javascript
method that should be invoked. One of the most powerful aspects of the
AJAX integration is there is no integration. The eXtremeTable has a
very clear and easy API to use and so this was the logical next step.
This also means you can use your favorite AJAX technology as the
eXtremeTable does not actually integrate with any specific one. There
is an example in the site code that is only checked into CVS right now.
However, my site runs on HSQL now so anyone can check out the source
code and run the example. Please do not ask for more documentation at
this time as I will be working to pull some together and will have it
available soon!
]]>Chapter 16. Tag Attributeshttp://www.tkk7.com/lucky/archive/2006/03/03/33372.htmlLuckyLuckyFri, 03 Mar 2006 01:55:00 GMThttp://www.tkk7.com/lucky/archive/2006/03/03/33372.htmlhttp://www.tkk7.com/lucky/comments/33372.htmlhttp://www.tkk7.com/lucky/archive/2006/03/03/33372.html#Feedback0http://www.tkk7.com/lucky/comments/commentRss/33372.htmlhttp://www.tkk7.com/lucky/services/trackbacks/33372.html
Chapter 16. Tag Attributes
16.1. TableTag
Table 16.1.
Name
Description
action
The URI that will be called when the filter, sort and
pagination is used.
autoIncludeParameters
Specify whether or not to automatically include the
parameters, as hidden inputs, passed into the JSP.
border
The table border attribute. The default is
0.
cellpadding
The table cellpadding attribute. The default is
0.
cellspacing
The table cellspacing attribute. The default is
0.
filterable
Specify whether or not the table is filterable. Boolean
value with the default being true.
filterRowsCallback
A fully qualified class name to a custom
FilterRowsCallback implementation. Could also be a named type in the
preferences. Used to filter the Collection of Beans or Collection of
Maps.
form
The reference to a surrounding form
element.
imagePath
The path to find the images. For example
imagePath=/extremesite/images/*.png is saying look in the image directory for
the .png images.
intercept
A fully qualified class name to a custom InterceptTable
implementation. Could also be a named type in the preferences. Used to add table
attributes.
items
Reference the collection that will be
retrieved.
locale
The locale for this table. For example fr_FR is used for
the French translation.
method
Used to invoke the table action using a POST or
GET.
onsubmit
The javascript onsubmit action for the
table.
retrieveRowsCallback
A fully qualified class name to a custom
RetrieveRowsCallback implementation. Could also be a named type in the
preferences. Used to retrieve the Collection of Beans or Collection of
Maps.
rowsDisplayed
The number of rows to display in the table.
scope
The scope (page, request, session, or application) to find
the Collection of beans or Collection of Maps defined by the collection
attribute.
showPagination
Specify whether or not the table should use pagination.
Boolean value with the default being true.
showExports
Specify whether or not the table should use the exports.
Boolean value with the default being true.
showStatusBar
Specify whether or not the table should use the status
bar. Boolean value with the default being true.
showTooltips
Specify whether or not to show the tooltips. Boolean value
with the default being true.
sortRowsCallback
A fully qualified class name to a custom SortRowsCallback
implementation. Could also be a named type in the preferences. Used to sort the
Collection of Beans or Collection of Maps.
sortable
Specify whether or not the table is sortable. Boolean
value with the default being true.
state
The table state to use when returning to a table.
Acceptable values are default, notifyToDefault, persist,
notifyToPersist.
stateAttr
The table attribute used to invoke the state change of the
table.
style
The css inline style sheet.
styleClass
The css class style sheet.
tableId
The unique identifier for the table.
theme
The theme to style the table. The default is
eXtremeTable.
title
The title of the table. The title will display above the
table.
var
The name of the variable to hold the current row
bean.
view
Generates the output. The default is the HtmlView to
generate the HTML. Also used by the exports to generate XLS-FO, POI, and
CSV.
width
Width of the
table.
16.2. RowTag
Table 16.2.
Name
Description
highlightClass
The css class style sheet when highlighting
rows.
highlightRow
Used to turn the highlight feature on and off. Acceptable
values are true or false. The default is false.
intercept
A fully qualified class name to a custom InterceptRow
implementation. Could also be a named type in the preferences. Used to add or
modify row attributes.
onclick
The javascript onclick action
onmouseout
The javascript onmouseout action
onmouseover
The javascript onmouseover action
style
The css inline style sheet.
styleClass
The css class style
sheet.
16.3. ColumnTag
Table 16.3.
Name
Description
alias
Used to uniquely identify the column when the same
property is used for more than one column.
calc
A fully qualified class name to a custom Calc
implementation. Could also be a named type in the preferences. Used to do math
on a column.
calcTitle
The title of the calc.
cell
Display for the column. The valid values are display,
currency, rowCount, and date. The default value is display. The cell can also be
a fully qualified class name to a custom Cell. Be sure to implement the Cell
interface or extend AbstractCell if making a custom cell.
escapeAutoFormat
Specify whether auto format of value will be skipped.
False by default, and is only effective if autoformatting is implement in the
view.
filterable
Specify whether or not the column should be filterable.
Acceptable values are true or false. The default is to use the value for the
table filterable attribute.
filterCell
Displays the filter column. The valid values are filter
and droplist. The default is filter. The cell can also be a fully qualified
class name to a custom cell.
filterClass
The css class style sheet used to define what the table
filter column looks like.
filterStyle
The css class style sheet to use for the filter
column.
format
The format to use for the cell. For instance if used with
a date cell then the format can be MM/dd/yyyy.
headerCell
Display for the header column. The default is header. The
cell can also be a fully qualified class name to a custom cell.
headerClass
The css class style sheet used to define what the table
header column looks like.
headerStyle
The css class style sheet to use for the header
column.
intercept
A fully qualified class name to a custom InterceptColumn
implementation. Could also be a named type in the preferences. Used to add or
modify column attributes.
parse
Used if the format needs to be interpreted. For instance,
a date needs to be parsed in the specific format, such as
MM-dd-yyyy.
property
The bean attribute to use for the column.
sortable
Specify whether or not the column should be sortable. The
acceptable values are true or false. The default is to use the value for the
table sortable attribute.
style
The css inline style sheet.
styleClass
The css class style sheet.
title
The display for the table column header. If the title is
not specified then it will default to the name of the property, changing the
camelcase syntax to separate words.
value
The value for the column. If the value attribute is not
specifed then it will be retrieved automatically using the property attribute.
The value can also be defined within the column body.
viewsAllowed
The comma separated list of views that this column will be
used in.
viewsDenied
The comma separated list of views that this column will
not be used in.
width
Specify the column
width.
16.4. ExportTag
Table 16.4.
Name
Description
fileName
The name of the export file.
imageName
The image name.
intercept
A fully qualified class name to a custom InterceptExport
implementation. Could also be a named type in the preferences. Used to add or
modify export attributes.
view
A fully qualified class name to a custom View
implementation. Could also be a named type in the preferences. Default types are
pdf, xls, or csv.
viewResolver
A fully qualified class name to a custom ViewResolver
implementation. Could also be a named type in the preferences. Default types are
pdf, xls, or csv.
text
The text for the export view.
tooltip
The tooltip that shows up when you mouseover the export
image.
16.5. ExportXlsTag
Table 16.5.
Name
Description
fileName
The name of the export file.
imageName
The image name.
intercept
A fully qualified class name to a custom InterceptExport
implementation. Could also be a named type in the preferences. Used to add or
modify export attributes.
view
A fully qualified class name to a custom View
implementation. Could also be a named type in the preferences. Default types are
pdf, xls, or csv.
viewResolver
A fully qualified class name to a custom ViewResolver
implementation. Could also be a named type in the preferences. Default types are
pdf, xls, or csv.
text
The text for the export view.
tooltip
The tooltip that shows up when you mouseover the export
image.
16.6. ExportCsvTag
Table 16.6.
Name
Description
delimiter
What to use as the file delimiter. The default is a
comma.
fileName
The name of the export file.
imageName
The image name.
intercept
A fully qualified class name to a custom InterceptExport
implementation. Could also be a named type in the preferences. Used to add or
modify export attributes.
view
A fully qualified class name to a custom View
implementation. Could also be a named type in the preferences. Default types are
pdf, xls, or csv.
viewResolver
A fully qualified class name to a custom ViewResolver
implementation. Could also be a named type in the preferences. Default types are
pdf, xls, or csv.
text
The text for the export view.
tooltip
The tooltip that shows up when you mouseover the export
image.
16.7. ExportPdfTag
Table 16.7.
Name
Description
headerBackgroundColor
The background color on the header column.
headerColor
The font color for the header column.
headerTitle
The title displayed at the top of the page.
fileName
The name of the export file.
imageName
The image name.
intercept
A fully qualified class name to a custom InterceptExport
implementation. Could also be a named type in the preferences. Used to add or
modify export attributes.
view
A fully qualified class name to a custom View
implementation. Could also be a named type in the preferences. Default types are
pdf, xls, or csv.
viewResolver
A fully qualified class name to a custom ViewResolver
implementation. Could also be a named type in the preferences. Default types are
pdf, xls, or csv.
text
The text for the export view.
tooltip
The tooltip that shows up when you mouseover the export
image.
16.8. ColumnsTag
Table 16.8.
Name
Description
autoGenerateColumns
A fully qualified class name to a custom
AutoGenerateColumns implementation. Could also be a named type in the
preferences. Used to generate columns on the
fly.
Context context = new HttpServletRequestContext(request); LimitFactory limitFactory = new TableLimitFactory(context); Limit limit = new TableLimit(limitFactory);