myfaces-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "benjamin van der veen" <bvanderv...@gmail.com>
Subject Re: Populating input fields and updating the model separately
Date Sat, 20 May 2006 19:55:49 GMT
This wouldn't quite work because the Posts are in a collection, and I
don't know which one was replied to, so I wouldn't know which to get
the content from.

Probably the component idea is the best one.

On 5/20/06, Andrew Robinson <andrew.rw.robinson@gmail.com> wrote:
> You could accomplish this with a facade. I know it isn't what you are
> exactly looking for, but would work.
>
> Example (Using seam annotations):
>
> @Name("postBean")
> public class Post
> {
>   private String content;
>   pubic String getContent() { return this.content; }
> }
>
> @Name("postResult")
> pubic class ResultsBean
> {
>   private String newContent;
>   public String getNewContent() { return this.newContent; }
>   public void setNewContent(String content) { this.newContent = content; }
> }
>
> @Name("post")
> public class PostFacade
> {
>   @In
>   private Post postBean;
>   @In(create=true)
>   private ResutsBean postResult;
>
>   public String getContent()
>   {
>     return (postResult.getNewContent() != null) ?
>       postResult.getNewContent() :
>       postBean.getContent();
>   }
>
>   public String setContent(String content) {
> postResult.setNewContent(content); }
> }
>
> XHTML:
> <t:inputTextarea value="#{post.content}" />
>
> There are other ways, this is just the first that came to mind.
>
> Another would obviously be a custom tag & component and handle the
> decode in the way that you want.
>
> -Andrew
>
> On 5/20/06, benjamin van der veen <bvanderveen@gmail.com> wrote:
> > Hello,
> >
> > This is hard to articulate, so let me give an example:
> >
> > Suppose you are making a message board. The objective is to make a
> > form the user can use to quote posts below his post, like so:
> >
> > (user 3 sees this in a text area, and types something above it)
> >
> > [begin textarea]
> >
> > > user 2 said:
> > > second message
> > >
> > > > user 1 said:
> > > > original message
> > [end textarea]
> >
> > In this example, user 3 is replying to a message from user 2, which
> > itself is a reply to a message from user 1.
> >
> > The initial value of the text area comes from a Post object; I am
> > iterating (<ui:repeat>) through a collection of Posts to build the
> > topic view. However, when the user submits this form, I don't want the
> > value of the Post object to be updated, I want a separate field
> > (newPostContent) on my backing bean to be updated. The problem is
> > here:
> >
> > <h:inputTextarea value="#{post.content}"/>
> >
> > --I cannot specify that I want the inital value to come from one place
> > and I want the user-submitted value to go somewhere else. To give an
> > example of what such a thing might look like:
> >
> > <h:inputTextarea initialValue="#{post.content}"
> > bindSubmittedValueTo="#{myBean.newPostContent}"/>
> >
> > How would this be done in reality?
> >
> > Thanks,
> > benjamin
> >
>

Mime
View raw message