You could probably get away with just exposing the map.

Dave
 On May 12, 2011 3:26 AM, "Chris Pratt" <thechrispr...@gmail.com> wrote:
> You could possibly get away with just implementing Iterable instead of
> Iterator. It's a much simpler interface to implement.
> (*Chris*)
>
> On Thu, May 12, 2011 at 12:17 AM, <matthieu.m...@ensam.eu> wrote:
>
>> Hi,
>>
>> Thank you. I implements the iterator interface, and now it is working.
>>
>> public class SearchResults implements Iterator<SearchResult> {
>>
>> private Set<String> keySet = null;
>> private Iterator<String> iterator = null;
>>
>> private Set<String> keySet() {
>>
>> if (this.keySet == null) {
>> this.keySet = this.results.keySet();
>> }
>> return this.keySet;
>> }
>>
>> private Iterator<String> iterator() {
>>
>> if (this.iterator == null){
>> this.iterator = this.keySet().iterator();
>> }
>> return this.iterator;
>> }
>>
>> public SearchResult get(String key) {
>> return this.results.get(key);
>> }
>>
>> @Override
>> public boolean hasNext() {
>> return this.iterator().hasNext();
>> }
>>
>> @Override
>> public SearchResult next() {
>> String next = this.iterator().next();
>> return this.get(next);
>> }
>> }
>>
>>
>> Calls (hasNext() and next()) are done in org.apache.struts2.components.
>> IteratorComponent
>>
>>
>> Thanks
>>
>> Matthieu MARC
>>
>>
>> -----Message d'origine-----
>> De : Steven Yang [mailto:kenshin...@gmail.com]
>> Envoyé : mardi 10 mai 2011 15:16
>> À : Struts Users Mailing List
>> Objet : Re: Tag iterator and my object container
>>
>> you need to implement the Iterator interface
>>
>> On Tue, May 10, 2011 at 4:14 PM, <matthieu.m...@ensam.eu> wrote:
>>
>> > Hi everybody,
>> >
>> > I have a container object SearchResults which contains a treeMap of
>> > simple object SearchResult.
>> >
>> > I want to iterate over SearchResults in order to display properties of
>> > all SearchResult object
>> >
>> > Class SearchResult {
>> > //getter and setter
>> > getDescription();
>> > }
>> >
>> > Class SearchResults {
>> > treeMap<String, SearchResult> resultats;
>> >
>> > public Set<String> keyset();
>> > public Iterator<String> iterator();
>> > public SearchResult get(String key);
>> > }
>> >
>> > My Action class have this getter :
>> >
>> > getResultats(){ return (SearchResults)object; };
>> >
>> > And my JSP look like :
>> >
>> > <s:iterator value="resultats">
>> > <s:property value="description" />
>> > </s:iterator>
>> >
>> >
>> > But it is not working, s:iterator tag is not iterating over my
>> > SearchResults object using the iterator() method (not called).
>> >
>> > How must I construct my SearchResults object in order to make the
>> > s:iterator tag iterate over it ?
>> >
>> > Thanks.
>> >
>> > Matthieu MARC
>> >
>> > ---
>> > Matthieu MARC
>> > Responsable du Service Informatique du Centre d'Angers Arts et Métiers
>> > ParisTech Tél : 02 41 20 73 61
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>> > For additional commands, e-mail: user-h...@struts.apache.org
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>> For additional commands, e-mail: user-h...@struts.apache.org
>>
>>

Reply via email to