--- Maxx <[EMAIL PROTECTED]> wrote:
> Map<String, List<MyBean>> myList;
>
> ... where the class MyBean is something like:
>
> class MyBean {
> private Long id;
> private String name;
> // + appropriate getters/setters
> }
>
> What I'd like is setting each value back through some <s:textfield />
> using the particular OGNL as described here:
> http://struts.apache.org/2.x/docs/type-conversion.html
> For generating all the appropriate <s:textfield /> I have two nested
> iterators; first one for the Map, second one for the List. But how do
> I do with my OGNL expressions to be put in the value="" attribute of
> the text fields.
>
> I'm guessing it's something like:
> myList['mapKey'](beanId)
> but I could not find how to configure it properly because it seems
> there's a conflict between how to declare the Map conversion & how to
> declare the pseudo-collection index for a single myList[...] value
>
> # conf. for the Map
> Key_myList=String
> Element_myList=java.util.Map
> CreateIfNull_myList=true
>
> # conf. for the Map...??? how to indicate here it's a value in the
> map, not the map itself!!?
> KeyProperty_myList=id
> Element_myList=com.mycompany.somepackage.www.bean.MyBean
> CreateIfNull_myList=true
AFAIK until you can name it you can't reference it: if you have a map with an
"anonymous" value there's no way to describe to the system how to handle it.
For example, my first S2 app had a fairly deeply nested structure for which
the textfields looked similar to this:
<s:textfield name="aMap[%{#result.id}].%{which}[0].foo" .../>
Here the value of "which" names a list (the index is hard-coded here to keep
it simple), which is a member of the object held in the map with an ID-like
index.
The conversion file (more or less, and I'm not even sure all of it is
necessary) looks like this:
Key_aMap=java.lang.Long
Element_aMap=foo.bar.Baz
CreateIfNull_aMap=true
# Here I was just checking "Collection" v. "Element"--this was a long time
ago.
# In the textfield above "%{which}" would be replaced by the string "aThing"
or "anotherThing".
Collection_aThing=com.over.wtf.DataType
Element_anotherThing=com.over.wtf.DataType
I'm not sure the automagic generics support follows the entire chain of
definitions; if you don't have a conversion file at all you'll probably end
up with an exception setting the MyBean values with a String[].
(Caveat: this got edited over a longer period of time than I originally
anticipated so may not be totally coherent, but that's par for the course for
me.)
Dave
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]