[
http://jira.codehaus.org/browse/DISPL-550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=227550#action_227550
]
Tom Stroobants commented on DISPL-550:
--------------------------------------
This is not fixed in version 1.2 as mentioned in History.
> uid always returns the same object in column decorators
> -------------------------------------------------------
>
> Key: DISPL-550
> URL: http://jira.codehaus.org/browse/DISPL-550
> Project: DisplayTag
> Issue Type: Bug
> Components: Decorators
> Affects Versions: 1.1.1
> Reporter: Thomas Queste
> Priority: Blocker
>
> Using the uid property of the table tag ("<display:table uid="row">") does
> not set the current row object in the page scope. It just put the last table
> row in pageScope.
> Here is an extract of the org.displaytag.tags.TableTag.doIteration() on line
> 784 :
> if (this.tableIterator.hasNext())
> {
> Object iteratedObject = this.tableIterator.next();
> [...]
> this.pageContext.setAttribute(getUid(), iteratedObject);
> So when the JSP is rendered, the iterator is called. For each table line, the
> iteratedObject overwrites the previous row. Then, after all row have been
> read, the column decorators are called. So If a decorator need the current
> row object, accessed using the provided pageContext, it will only find the
> last row object.
> The Javadoc for "uid" is : "The object representing the current row is also
> added to the pageContext under this name and the current row number is added
> using the key uid_rowNum." So in a column decorator, using pageContext, we
> can presume to have access to the current row object. This is not the case :
> the last table row is the only object in pageScope.
> Example of a column decorator which does not have access to its current row
> object :
> public class WorkflowStepColumnDecorator implements DisplaytagColumnDecorator
> {
> public Object decorate(Object columnValue, PageContext pageContext,
> MediaTypeEnum media) throws DecoratorException {
> Object row = pageContext.getAttribute("row");
> // row is not the current row, it is the last table's row
> }
> }
> JSP code :
> <display:table uid="row" name="users">
> <display:column decorator="example.MyColumnDecorator "/>
> </display:table>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
displaytag-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/displaytag-devel