Note that you'd need something like this as well

<input binding="#{bean.myComponent}" ...

transient private UIInput myComponent;
public UIInput getMyComponent() { return this.myComponent; }
public void setMyComponent(UIInput myComponent) { this.myComponent =
myComponent; }

On 3/17/07, Simon Lessard <[EMAIL PROTECTED]> wrote:
Hello,

What id are you using exactly? To add a message to FacesContext you have to
use clientId, not the base id, so the message addition should be done this
way:

public String myAction()
{
  FacesMessage message = new FacesMessage("My message");
  FacesContext context = FacesContext.getCurrentInstance();

  context.addMessage(myComponent.getClientId(context), message);

  return null;
}


Regards,

~ Simon


 On 3/17/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> I have seemingly tried everything.  I put forceId on the <t:inputText>
> (which sets the id properly); I tried a validator and calling
> addMessage() from within the validator method, which although it is
> bulky it did work and the error message appeared; page-level validation
> works (an error message appears if I leave the field empty).  However,
> it does not work if I call FacesContext.addMessage() from within the
> action method.  The error message does not show up.  Is there something
> else I have to do???  Like a PhaseListener or something?  Some other
> setting somewhere?  I am absolutely sure I am getting the correct id
> because I even used a binding property.  I could really use some help.
> This shouldn't be that difficult.  Thanks!
>


Reply via email to