You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Jeroen Verhagen <je...@gmail.com> on 2005/10/10 14:58:55 UTC

EvaluationException with myfaces

Hi all,

I get an exception when I move my JSF application from Sun's RI to myfaces 1.1:

javax.faces.el.EvaluationException: Cannot get value for expression
'#{userManager.existingUser}'
	org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:399)
	javax.faces.component.html.HtmlInputText.isDisabled(HtmlInputText.java:115)
	org.apache.myfaces.renderkit.html.HtmlTextRendererBase.isDisabled(HtmlTextRendererBase.java:156)
	org.apache.myfaces.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:143)
	org.apache.myfaces.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:49)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)

The code in UserManager looks like this:

  public boolean isExistingUser() {
    return users.getUser(currentUser.getName()) != null;
  }

So this did work on Sun's RI. Does anybody know what would be causing
this? Is there a workaround?

Thanks and regards,

Jeroen

Dynamic icons in dataTable?

Posted by Thierry Buecheler <bu...@student.ethz.ch>.
Hi everyone

I would like to display an image in a dataTable column iff a boolean 
value is true in the collection element for that row (I used to display 
a write disabled checkbox, but now I have to display a nice little icon).

Anybody has a code snippet or hint how to do this?

Thank you in advance!

Thierry


Re: EvaluationException with myfaces

Posted by Mike Kienenberger <mk...@gmail.com>.
I still think it's a value binding evaluation problem rather than anything else.
I recommend setting a breakpoint on isDisabled and stepping through
the value binding evaluation.   I think you'll find that you've either
left userManager undefined or that existingUser isn't mapping to the
method you think it's mapping to.

What happens if you simply try to evaluate nameEditingEnabled
immediately after creating it?

On 10/11/05, Jeroen Verhagen <je...@gmail.com> wrote:
> Hi Mike,
>
> On 10/11/05, Mike Kienenberger <mk...@gmail.com> wrote:
> > Does '#{userManager.existingUser}' match isExistingUser()?  Or will it
> > only match getExistingUser()?
>
> It doesn't match either, same exception for boolean getExistingUser()
>
> What I probably should have mentioned before is that the HtmlInputText
> is not on a JSP page but on a View created from a class (using the
> ClassViewHandler example from Hans Bergstens JSF book) like this:
>
> HtmlInputText nameInputText =
> Util.createInputText(application.createValueBinding("#{userManager.currentUser.name}"),
> false);
> ValueBinding nameEditingEnabled =
> application.createValueBinding("#{userManager.existingUser}");
> nameInputText.setValueBinding("disabled", nameEditingEnabled);
>
> Hope this helps to get an answer...
>
> Thanks and regards,
>
> Jeroen
>

Re: EvaluationException with myfaces

Posted by Jeroen Verhagen <je...@gmail.com>.
Hi Mike,

On 10/11/05, Mike Kienenberger <mk...@gmail.com> wrote:
> Does '#{userManager.existingUser}' match isExistingUser()?  Or will it
> only match getExistingUser()?

It doesn't match either, same exception for boolean getExistingUser()

What I probably should have mentioned before is that the HtmlInputText
is not on a JSP page but on a View created from a class (using the
ClassViewHandler example from Hans Bergstens JSF book) like this:

HtmlInputText nameInputText =
Util.createInputText(application.createValueBinding("#{userManager.currentUser.name}"),
false);
ValueBinding nameEditingEnabled =
application.createValueBinding("#{userManager.existingUser}");
nameInputText.setValueBinding("disabled", nameEditingEnabled);

Hope this helps to get an answer...

Thanks and regards,

Jeroen

Re: EvaluationException with myfaces

Posted by Mike Kienenberger <mk...@gmail.com>.
Does '#{userManager.existingUser}' match isExistingUser()?  Or will it
only match getExistingUser()?

"5.1.2 Value Binding Expression Syntax
The syntax of a value binding expression is identical to the syntax of
an expression
language expression defined in the JavaServer Pages Specification (version 2.0),
sections 2.3 through 2.9, with the following exceptions:"

I don't have the JSP specs and haven't read them, so I can't say for
sure which behavior is correct.   My suspicion is that
"isExistingUser" is not accessible via JSF value binding, though.


On 10/10/05, Jeroen Verhagen <je...@gmail.com> wrote:
> Hi Martin,
>
> On 10/10/05, Martin Marinschek <ma...@gmail.com> wrote:
> > can you post the full stacktrace? this looks like an excerpt which
> > does not say too much...
>
> Here you go:
>
> exception
>
> javax.servlet.ServletException: Cannot get value for expression
>
> '#{userManager.existingUser}'
>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:109)
>
> root cause
>
> javax.faces.el.EvaluationException: Cannot get value for expression
> '#{userManager.existingUser}'
>         org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:399)
>         javax.faces.component.html.HtmlInputText.isDisabled(HtmlInputText.java:115)
>         org.apache.myfaces.renderkit.html.HtmlTextRendererBase.isDisabled(HtmlTextRendererBase.java:156)
>         org.apache.myfaces.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:143)
>         org.apache.myfaces.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:49)
>         javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
>         org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
>         org.apache.myfaces.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:203)
>         org.apache.myfaces.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:85)
>         javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
>         com.docato.jsf.renderers.DocatoRootRenderer.encodeRecursive(DocatoRootRenderer.java:90)
>         com.docato.jsf.renderers.DocatoRootRenderer.encodeRecursive(DocatoRootRenderer.java:87)
>         com.docato.jsf.renderers.DocatoRootRenderer.encodeChildren(DocatoRootRenderer.java:66)
>         javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:319)
>         com.docato.jsf.handlers.ClassViewHandler.renderResponse(ClassViewHandler.java:190)
>         com.docato.jsf.handlers.ClassViewHandler.renderResponse(ClassViewHandler.java:194)
>         com.docato.jsf.handlers.ClassViewHandler.renderView(ClassViewHandler.java:116)
>         org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:300)
>         javax.faces.webapp.FacesServlet.service(FacesServlet.java:95)
>
> Thanks,
>
> Jeroen
>

Re: EvaluationException with myfaces

Posted by Jeroen Verhagen <je...@gmail.com>.
Hi Martin,

On 10/10/05, Martin Marinschek <ma...@gmail.com> wrote:
> can you post the full stacktrace? this looks like an excerpt which
> does not say too much...

Here you go:

exception

javax.servlet.ServletException: Cannot get value for expression

'#{userManager.existingUser}'
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:109)

root cause

javax.faces.el.EvaluationException: Cannot get value for expression
'#{userManager.existingUser}'
	org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:399)
	javax.faces.component.html.HtmlInputText.isDisabled(HtmlInputText.java:115)
	org.apache.myfaces.renderkit.html.HtmlTextRendererBase.isDisabled(HtmlTextRendererBase.java:156)
	org.apache.myfaces.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:143)
	org.apache.myfaces.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:49)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
	org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
	org.apache.myfaces.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:203)
	org.apache.myfaces.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:85)
	javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
	com.docato.jsf.renderers.DocatoRootRenderer.encodeRecursive(DocatoRootRenderer.java:90)
	com.docato.jsf.renderers.DocatoRootRenderer.encodeRecursive(DocatoRootRenderer.java:87)
	com.docato.jsf.renderers.DocatoRootRenderer.encodeChildren(DocatoRootRenderer.java:66)
	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:319)
	com.docato.jsf.handlers.ClassViewHandler.renderResponse(ClassViewHandler.java:190)
	com.docato.jsf.handlers.ClassViewHandler.renderResponse(ClassViewHandler.java:194)
	com.docato.jsf.handlers.ClassViewHandler.renderView(ClassViewHandler.java:116)
	org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:300)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:95)

Thanks,

Jeroen

Re: EvaluationException with myfaces

Posted by Martin Marinschek <ma...@gmail.com>.
can you post the full stacktrace? this looks like an excerpt which
does not say too much...

regards,

Martin

On 10/10/05, Jeroen Verhagen <je...@gmail.com> wrote:
> Hi all,
>
> I get an exception when I move my JSF application from Sun's RI to myfaces 1.1:
>
> javax.faces.el.EvaluationException: Cannot get value for expression
> '#{userManager.existingUser}'
>        org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:399)
>        javax.faces.component.html.HtmlInputText.isDisabled(HtmlInputText.java:115)
>        org.apache.myfaces.renderkit.html.HtmlTextRendererBase.isDisabled(HtmlTextRendererBase.java:156)
>        org.apache.myfaces.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:143)
>        org.apache.myfaces.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:49)
>        javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
>
> The code in UserManager looks like this:
>
>  public boolean isExistingUser() {
>    return users.getUser(currentUser.getName()) != null;
>  }
>
> So this did work on Sun's RI. Does anybody know what would be causing
> this? Is there a workaround?
>
> Thanks and regards,
>
> Jeroen
>


--

http://www.irian.at
Your JSF powerhouse -
JSF Trainings in English and German