Additionally if it'll make you feel warm and fuzzy (?) , The Oracle ADF Faces distribution includes a forEach component which acts just like a JSTL <c:forEach> tag for iterating through collections within a manged bean .

Regards

Duncan Mills
http://www.groundside.com/blog




Craig McClanahan wrote:

On Tue, 23 Nov 2004 13:45:37 -0500, Rick Reumann <[EMAIL PROTECTED]> wrote:


First off, Craig if you are reading this, how come no one has started a
jsf-users mailing list? I hate using web forums. yuk:) Seems like



I'm not a huge fan of web forums either, but that's what JSF has to deal with :-).

 (Free registration required) http://forum.java.sun.com/forum.jspa?forumID=427




First, let me frame my question in light of real life terms that we have
to deal with. We have some complex nested value objects that return from
the backend. Typically the user on the front end is provided the
opportunity to modify just a few of the nested VO properties. The nested
VOs are thus stored in Session scope which makes it very easy to return
back the full VOs with the modified properties (after BeanUtils does the
copying of the request params). For those that are wondering why not
just create an ActionForm to capture the single properties you need, the
answer is this would be a nightmare to then figure out how to get those
properties from your from back into the correct spots in the different
ValueObjects. (By the way, I don't think the backend should need to
provide ways to handle how the front is giving you the data so the
backend 'should' be able to just give me a VO with nested VOs inside).
All of this works completely fine in a Struts environment and is made
really easy by the use of the nested tag. (Validation is handled on the
backend).

My question then becomes... will JSF be able to handle nested objects
just as easily? I'm assuming it should but I haven't explored any of the
JSF tags. I'm assuming that at the very least I could do like I would do
it with JSTL and Strtus (not using the Nested tag) and be able to write
a JSF input maybe like:

<h:inputText
value="#{someVo.someList[${someHandleToAnIndexInLoop}].someList[${someHandleToAnIndexInLoop}].someList[${someHandleToAnIndexInLoop}].someValue}"/>

Of course it would ne nicer with an nested tag equivalent, but the above
will work. Just checking to make sure JSF can deal with this in some way
before I get started. If not, I'm really stuck not being able to use
JSF, since our business requirements are complex and the objects coming
from the backend will be nested and I need to return them back to the
backend in their modified form. (I also don't want to have to hardcode a
bunch of hidden variable place holders so that's why I'm using Session
to store the VOs).

Thanks for any light on this issue.




JSF can indeed deal with nested expressions for its value bindings ("#{foo.bar.baz}), but you won't be able to intermix JSF expressions "#{...}" and JSP expressions "${...}" because the JSF tags all turn off evaluation of runtime expressions (to avoid potential cross site scripting like attacks).

So, something like this should work:

<h:inputText
value="#{someVo.someList[someHandleToAnIndexInLoop].someList[someHandleToAnIndexInLoop].someList[someHandleToAnIndexInLoop].someValue"/>

Note that JSF basically does away with the need for a form bean
because the components themselves do what we use form beans for
(holding the string version of the input data so it can be redisplayed
if conversion fails).



--
Rick



Craig

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to