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