I am using tiles. So the jsf page is actually
included with a tiles:insert tag. Here is most of the
template JSP. The message would be part of the body
JSP. Are you using tiles?
<f:view>
<h:form id="pageForm">
<body>
<table width="100%" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<td colspan="2"
id="header">
<f:subview
id="header">
<tiles:insert attribute="header"
flush="false"/>
</f:subview>
</td>
</tr>
<tr>
<td id="menu"
valign="top">
<f:subview
id="menu">
<tiles:insert attribute="menu" flush="false"
/>
</f:subview>
</td>
<td id="body"
valign="top">
<f:subview
id="body">
<tiles:insert attribute="body"
flush="false"/>
</f:subview>
</td>
</tr>
<tr>
<td colspan="2"
id="footer">
<f:subview
id="footer">
<tiles:insert attribute="footer"
flush="false"/>
</f:subview>
</td>
</tr>
</tbody>
</table>
</body>
</h:form>
</f:view>
--- Robert Breidecker <[EMAIL PROTECTED]> wrote:
> The example I gave you is working for me. I'm
> curious
> as to why you are getting the exception. Is the
> "messages" tag nested under a "view" tag?
>
>
> --- Ray Clark <[EMAIL PROTECTED]> wrote:
>
> > Hi Rob, thanks for trying, but this didn't seem to
> > help.
> >
> > I changed the code to be like this:
> >
> >
> FacesContext.getCurrentInstance().addMessage("body",
> >
> > new FacesMessage(FacesMessage.SEVERITY_ERROR,
> > "summary message", "detail message"));
> >
> > When I put the messages tag in my page like you
> > suggest:
> >
> > <h:messages id="body" layout="table"
> > styleClass="message" showSummary="true"
> > showDetail="false"/>
> >
> > I get a "java.lang.IllegalStateException: parent
> is
> > null?" exception.
> >
> > When I leave the id attribute off, it doesn't
> throw
> > an
> > exception but of course it doesn't work either.
> >
> > So I tried this:
> >
> > <h:message for="body" showSummary="true"
> > showDetail="true"/>
> >
> > This doesn't show a message either. It doesn't
> > throw
> > an exception, it just doesn't seem to do anything.
> >
> > I know the message is getting into the context
> > because
> > I can execute this and the message gets printed
> out.
> >
> > Iterator iter =
> > FacesContext.getCurrentInstance().getMessages();
> > while (iter.hasNext()) {
> > FacesMessage msg = (FacesMessage) iter.next();
> > System.out.println("severity=" +
> msg.getSeverity()
> > + ", summary=" + msg.getSummary()
> > + ", detail=" + msg.getDetail());
> > }
> >
> > I was using null instead of "body" because I
> thought
> > I
> > read in the javadoc that null meant that it was a
> > global message. But changing it to null and
> adding
> > the globalOnly="true" attribute to the messages
> tag
> > didn't do a think either.
> >
> > Anybody got any other ideas?
> >
> > Surely people are using h:message or h:messages to
> > put
> > out messages to the users from a method other than
> a
> > converter or validator.
> >
> > I'm using MyFaces 1.0.8, what are you using Rob?
> >
> > Thanks,
> > Ray
> >
> > --- Robert Breidecker <[EMAIL PROTECTED]>
> wrote:
> > > Ray,
> > >
> > > You need to set the client id when adding the
> > > message
> > > to FacesContext.
> > >
> > > The last line in your code example would be...
> > > context.addMessage("myClientId", message);
> > >
> > > Your JSP messages tag would be...
> > > <h:messages id="myClientId" layout="table"
> > > styleClass="message" showSummary="true"
> > > showDetail="false"/>
> > >
> > > Hope this helps.
> > >
> > > Rob Breidecker
> > >
> > >
> > >
> > >
> > > --- Ray Clark <[EMAIL PROTECTED]> wrote:
> > > > I have a method in a managed bean that is
> > getting
> > > > called. I wish to put a message on the page
> to
> > > > inform
> > > > the user that the operation that he/she
> > requested
> > > > was
> > > > performed correctly. I can successfully do
> this
> > > > with
> > > > a variable in the managed bean. My problem is
> > > that
> > > > I
> > > > was wanting to use the built in FacesMessage
> > class
> > > > for
> > > > this if possible. Here is my code to add my
> > > > message:
> > > >
> > > > FacesMessage message = new FacesMessage();
> > > >
> > message.setSeverity(FacesMessage.SEVERITY_ERROR);
> > > > message.setSummary("Add was successful");
> > > > message.setDetail("Add was successful");
> > > > FacesContext context =
> > > > FacesContext.getCurrentInstance();
> > > > context.addMessage(null, message);
> > > >
> > > > It does add the message to the context because
> I
> > > can
> > > > use System.out to print it out right after
> that.
> >
> > > > The
> > > > problem is that the message doesn't display on
> > the
> > > > page. I do get other Faces messages displayed
> > so
> > > I
> > > > don't believe it is a problem with the JSP.
> I'm
> > > > wondering if FacesMessage was not designed to
> be
> > > > used
> > > > like this. Is FacesMessage only designed to
> be
> > > used
> > > > in the converter and validator?
> > > >
> > > > Has anyone else been able to put a message in
> > the
> > > > context and been able to print it out on the
> > page?
> > > >
> > > > Here is my JSP snippet.
> > > >
> > > > <h:messages layout="table"
> styleClass="message"
> > > > showSummary="true" showDetail="false"/>
> > > > <h:messages layout="table"
> styleClass="message"
> > > > showSummary="false" showDetail="true"/>
> > > >
> > > >
> > > > Thanks,
> > > > Ray
> > > >
> > > >
> > > >
> > > > __________________________________
> > > > Do you Yahoo!?
> > > > Make Yahoo! your home page
> > > > http://www.yahoo.com/r/hs
> > > >
> > >
> > >
> > >
> > > __________________________________
> > > Do you Yahoo!?
> > > Make Yahoo! your home page
> > > http://www.yahoo.com/r/hs
> > >
> >
> >
> >
> > __________________________________
> > Do you Yahoo!?
> > Yahoo! Small Business - Try our new resources
> site!
> > http://smallbusiness.yahoo.com/resources/
> >
>
>
>
=== message truncated ===
__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/