Hi Kirk,

I do not use the ui: tags myself (I stick with property and iterator etc),
so I cannot say for sure, but I believe the bad performance is due to the
use of PropertyEditors when printing the select list.

I had similar performance problems with the 1.2.1 version. The 1.3RC1
version does not have this performance problem because there one introduced
a cache of the PropertyEditors. Unfortunately that is not allowed since it
is not thread-safe at all (as have been discussed on the list).
Last week I posted a patch to the list (and Jira), that would fix this for
1.3, but I still have not heard of any committer adding it to CVS.

Anyway, back to your problem. What you can try is to patch the BeanUtil
class. Change the method:
String toStringValue(Object obj) to just do a:
if (obj == null) return ""; else return obj.toString();
However, then you cannot rely on any PropertyEditor to be used for
displaying your data. I do not know how important that is for you. Or you
could change it to:
if (obj == null) return""; else if (obj instanceof String) return (String)
obj; else  (.... do the method as it is today...).

When I first had these performance problems I noticed that when the
PropertyEditorManager should return an editor for a String it took even
longer that normal! It seemed as if this was because the StringEditor was
not registered in the HashMap in the PropertyEditorManager, so it was not
found on the first lookup, but later when the manager checks for different
classnames etc.
So if you do not want to do the changes to Webwork code I described above,
you can try to add a String editor to the PropertyEditorManager like:
PropertyEditorManager.registerEditor(String.class,
sun.beans.editors.StringEditor.class);
That might improve your performance a bit.

Hope this helps! Good luck!

Best regards,

Dick Zetterberg

[EMAIL PROTECTED]

Original Message -----
From: "Kirk Rasmussen" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, January 12, 2003 2:38 AM
Subject: [OS-webwork] Slow performance using ww:iterator tag (version
1.2.1)?


> Happy new year everyone!  I have a simple question about the
<webwork:iterator> tag and performance using WW 1.2.1.
>
> I have this list of countries that contains 245 entries.  When I execute
the following fragment, it takes about 15 seconds to execute the iterator
loop by itself.  Any of you WW gurus have some pointers on making it faster?
I can't simply cache the select list because the form is for an address book
so the selected value is user specific.
>
> <%@ taglib uri="webwork" prefix="ww" %>
> <%@ taglib uri="webwork" prefix="ui" %>
> <%
>     long start, end = -1;
> %>
>
>     <table width="100%">
>     <tr>
>     <!-- start cell with webwork components -->
>     <ww:action name="'CountriesList'" id="countrieslist"/>
> <% start = System.currentTimeMillis(); %>
>     <ui:select label="'Country'" name="'country'"
list="@countrieslist/countries" listKey="'countryCode'"
listValue="'description'"/>
> <% end = System.currentTimeMillis(); %>
>     <!-- end cell with webwork components -->
>     </tr>
>     </table>
> <p>
> Execution Time=<%= ((double)end - start) / 1000.0 %> sec
> </p>
>
> Thanks,
> Kirk Rasmussen
> Lucasfilm Ltd.
>
>
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld
http://www.vasoftware.com
> _______________________________________________
> Opensymphony-webwork mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork



-------------------------------------------------------
This SF.NET email is sponsored by: FREE  SSL Guide from Thawte
are you planning your Web Server Security? Click here to get a FREE
Thawte SSL guide and find the answers to all your  SSL security issues.
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

Reply via email to