I didn't understand very well why do you need to declare a managed property.
The way in which you have defined your "loggedIn" managed-property means that:
1) You should define a setLoggedIn(...) method in your LoginBean
2) You have defined somewhere a managed bean-called "loggedIn"
3) You want JSF to call the LoginBean.setLoggedIn(...) method, passing
the instance of the loggedIn managed-bean.
This method is usually followed when you need to access one
managed-bean from another one. Since the managed-bean instances are
created by the framework, you need to do like this to obtain those
framework-created objects. See this wiki entry for details about this
strategy: http://wiki.apache.org/myfaces/AccessingOneManagedBeanFromAnother.
I don't know how the <c:if> tag has to be used, but generally you
don't need to declare a managed-property in order to access that
property from your pages.
that there must be another managed bean whose name is "loggedIn", and
2006/6/1, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
Yes I have three properties username, password and loggedIn.
Because I want to check the loggedIn property it was the advice to
make as a managed property.
<managed-bean>
<managed-bean-name>LoginBean</managed-bean-name>
<managed-bean-class>org.onlinestore.web.LoginBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>loggedIn</property-name>
<value>#{loggedIn}</value>
</managed-property>
</managed-bean>
The loggedIn variable of the value is defined in the el expression statement
<c:if var="loggedIn" test="${!LoginBean.loggedIn}" />
>-- Original-Nachricht --
>Reply-To: "MyFaces Discussion" <[email protected]>
>Date: Thu, 1 Jun 2006 17:07:48 +0200
>From: "Cosma Colanicchia" <[EMAIL PROTECTED]>
>To: "MyFaces Discussion" <[email protected]>
>Subject: Re: if test
>
>
>Have you added a "public String getUsername()" method in your
>LoginBean class? Seems that is missing. I don't think this error is
>related to your managed property.
>
>
>2006/6/1, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
>>
>> Thanks
>>
>> It seems I am a bit confused. I have added
>>
>> <managed-property>
>> <property-name>loggedIn</property-name>
>> <value>#{loggedIn}</value>
>> </managed-property>
>>
>> And I get the error:
>>
>> javax.faces.el.EvaluationException: Cannot get value for expression
'#{LoginBean.username}'
>> at
org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:397)
>> at javax.faces.component.UIOutput.getValue(UIOutput.java:75)
>> at
org.apache.myfaces.renderkit.RendererUtils.getStringValue(RendererUtils.java:225)
>> at
org.apache.myfaces.renderkit.html.HtmlTextRendererBase.renderInput(HtmlTextRendererBase.java:131)
>> at
org.apache.myfaces.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:49)
>> at
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
>> at
org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:450)
>> at
org.apache.myfaces.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:203)
>> at
org.apache.myfaces.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:85)
>> at
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331)
>> at
javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:349)
>> at
javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:253)
>> at
org.apache.myfaces.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:55)
>> at
org.apache.jsp.login_jsp._jspx_meth_h_panelGrid_0(org.apache.jsp.login_jsp:264)
>> at
org.apache.jsp.login_jsp._jspx_meth_h_form_0(org.apache.jsp.login_jsp:196)
>> at
org.apache.jsp.login_jsp._jspx_meth_f_view_0(org.apache.jsp.login_jsp:140)
>> at org.apache.jsp.login_jsp._jspService(org.apache.jsp.login_jsp:90)
>> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
>> at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>> at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
>> at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
>> at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
>> at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
>> at
org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415)
>> at
org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
>> at
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352)
>> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107)
>> at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>> at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>> at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>> at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>> at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>> at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>> at
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:54)
>> at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174)
>> at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
>> at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>> at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>> at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>> at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>> at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
>> at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
>> at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
>> at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
>> at java.lang.Thread.run(Thread.java:595)
>> Caused by: javax.faces.el.EvaluationException: org.onlinestore.web.LoginBean
>> at
org.apache.myfaces.el.PropertyResolverImpl.setValue(PropertyResolverImpl.java:155)
>> at
org.apache.myfaces.config.ManagedBeanBuilder.initializeProperties(ManagedBeanBuilder.java:176)
>> at
org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:55)
>> at
org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:311)
>> at
org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:569)
>> at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
>> at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
>> at
org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:378)
>> ... 51 more
>> Caused by: javax.faces.el.EvaluationException: Bean:
org.onlinestore.web.LoginBean,
>> property: loggedIn
>> at
org.apache.myfaces.el.PropertyResolverImpl.setProperty(PropertyResolverImpl.java:372)
>> at
org.apache.myfaces.el.PropertyResolverImpl.setValue(PropertyResolverImpl.java:148)
>> ... 58 more
>> Caused by: java.lang.IllegalArgumentException
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at
org.apache.myfaces.el.PropertyResolverImpl.setProperty(PropertyResolverImpl.java:368)
>> ... 59 more
>>
>> >-- Original-Nachricht --
>> >Reply-To: "MyFaces Discussion" <[email protected]>
>> >Date: Thu, 1 Jun 2006 15:48:26 +0200
>> >From: "Matthias Wessendorf" <[EMAIL PROTECTED]>
>> >To: "MyFaces Discussion" <[email protected]>
>> >Subject: Re: if test
>> >
>> >
>> >use rendered attritubte, available on each faces component
>> >
>> >rendrd="#{bean.prop}"
>> >
>> >-Matthias
>> >
>> >On 6/1/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>> >> Hello
>> >>
>> >> My problem is the if test with session bean boolean property does not
>> work
>> >> how I do expect it.
>> >>
>> >>
>> >> <c:if var="loggedIn" test="${!LoginBean.loggedIn}" />
>> >> ....
>> >>
>> >>
>> >> </c:if>
>> >>
>> >> I use
>> >>
>> >> public class LoginBean {
>> >>
>> >> ...
>> >>
>> >> public boolean isLoggedIn() {
>> >>
>> >> return loggedIn;
>> >> }
>> >>
>> >> public void setLoggedIn(boolean loggedIn) {
>> >>
>> >> this.loggedIn = loggedIn;
>> >> }
>> >>
>> >> ...
>> >> }
>> >>
>> >> <managed-bean>
>> >> <managed-bean-name>LoginBean</managed-bean-name>
>> >>
<managed-bean-class>org.onlinestore.web.LoginBean</managed-bean-class>
>> >> <managed-bean-scope>session</managed-bean-scope>
>> >> </managed-bean>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >
>> >
>> >--
>> >Matthias Wessendorf
>> >Aechterhoek 18
>> >48282 Emsdetten
>> >blog: http://jroller.com/page/mwessendorf
>> >mail: mwessendorf-at-gmail-dot-com
>>
>>