Finally got it to work inside panelgrid. I don't understand it but it works. Shasi, I think you are right about the problem is caused by rendered attribute being evaluated as false when clicked. Below is what I did to get it to work. Hopefully you or someone can explain why.
The code change that I made to get it to work is on this line only: <h:panelGrid rendered="#{not empty sessionScope.MyAccountLoginType and sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT }"> It works if I change it to this: <h:panelGrid rendered="#{ sessionScope.MyAccountLoginType=='MA'}"> Note : value of MA is what I have in my message bundle "resources.LOGIN_TYPE_MY_ACCOUNT". Just to be sure, I did <h:outputText value="#{resources.LOGIN_TYPE_MY_ACCOUNT} "/> and it output value of MA correctly. Not sure why I can't use it to perform the rendered test. I tried below and non of them work. But I don't know why: <h:panelGrid rendered="#{not empty sessionScope.MyAccountLoginType and sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT }"> <h:panelGrid rendered="#{not empty sessionScope.MyAccountLoginType and sessionScope.MyAccountLoginType=='MA' }"> <h:panelGrid rendered="${not empty sessionScope.MyAccountLoginType and sessionScope.MyAccountLoginType=='MA' }"> -----Original Message----- From: Lim Hock-Chai [mailto:lim.hock-c...@usamobility.com] Sent: Wednesday, May 09, 2012 1:52 PM To: MyFaces Discussion Subject: RE: commandlink not working in panelgrid I added an onclick="alert(#{not empty sessionScope.MyAccountLoginType and sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT })" on the commandlink element and the alert showing value of true when I click on the link. <h:panelGrid rendered="#{not empty sessionScope.MyAccountLoginType and sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT }"> <h:outputText value=" "/> <h:outputText value="|"/> <h:commandLink immediate="true" onclick="alert(#{not empty sessionScope.MyAccountLoginType and sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT })" style="CURSOR: pointer" action="#{commonTaskBean.fromMSAMBackToMyAccount}"> <h:outputText value="My Account"/> </h:commandLink> <h:outputText value="|"/> </h:panelGrid> -----Original Message----- From: Shasi Mitra [mailto:shasimi...@yahoo.com] Sent: Wednesday, May 09, 2012 1:36 PM To: MyFaces Discussion Subject: Re: commandlink not working in panelgrid After u click the link also the expression in the rendered attribute is evaluated. That time it should be returning Faldo and hence ur action isn't being fired. If u remove all the rendered attributes or keep ur bean in session scope, it should work. Try printing the expression u gave in the rendered attribute and check. Sent from my iPhone On May 9, 2012, at 11:59 PM, Lim Hock-Chai <lim.hock-c...@usamobility.com> wrote: > I tried both session and request scopes. Both failed to work. The thing is > that the commandlink is showing on the page, which would mean that the > rendered condition in the panelGroup or panelgrid is ok. It just that when I > click on the link that is inside the panelgroup/panelgrid, it does not work. > I even tried not using any rendered condition on the panelGroup/panelGrid, > the link still not working. Oddest thing. > > > > -----Original Message----- > From: Shasi Mitra [mailto:shasimi...@yahoo.com] > Sent: Wednesday, May 09, 2012 1:12 PM > To: MyFaces Discussion > Subject: Re: commandlink not working in panelgrid > > Are u sure ur bean is in session scope? Befor the action event is fired, it's > verified whether the grid is rendered or not. So if the bean is in request > scope, it returns False and therefore the link's action isn't fired. > > Sent from my iPhone > > On May 9, 2012, at 9:57 PM, Lim Hock-Chai <lim.hock-c...@usamobility.com> > wrote: > >> I'm currently using myfaces 1.1.9 for my web app. I'm having some problems >> with commandlink not working correctly for me. It appears that when >> commandlink is inside of the panelgrid, it is not calling the method >> specified in the action attr. But it works fine if I put it outside of the >> panelgrid. Strange part is that I've had other jsp that have commandlink >> inside datatable and they work fine also. This is the first time I use it >> inside a panelgrid. >> >> See code below. The first commandlink is, which is not inside of panelgrid, >> works fine. The 2nd commandlink is inside of panelgrid and it is not >> working (not calling back-end bean method) >> >> <jsp:root version="2.0" >> xmlns:jsp="http://java.sun.com/JSP/Page" >> xmlns:c="http://java.sun.com/jsp/jstl/core" >> xmlns:f="http://java.sun.com/jsf/core" >> xmlns:h="http://java.sun.com/jsf/html" >> xmlns:t="http://myfaces.apache.org/tomahawk" >> xmlns:a4j="http://richfaces.org/a4j"> >> >> <f:subview> >> <f:loadBundle var="resources" basename="com.arch.myaccount.jsf.Resources"/> >> <h:form id="MSAMHeaderOtherForm"> >> >> <!-- commandlink below works fine --> >> <h:outputText value="|"/> >> <h:commandLink immediate="true" style="CURSOR: pointer" >> action="#{commonTaskBean.fromMSAMBackToMyAccount}" > >> <h:outputText value="My Account"/> >> </h:commandLink> >> <h:outputText value="|"/> >> >> <!-- commandlink below does not work --> >> <h:panelGroup >> rendered="#{not empty sessionScope.MyAccountLoginType and >> >> sessionScope.MyAccountLoginType==resources.LOGIN_TYPE_MY_ACCOUNT }"> >> <h:outputText value=" "/> >> <h:outputText value="|"/> >> <h:commandLink immediate="true" style="CURSOR: pointer" >> action="#{commonTaskBean.fromMSAMBackToMyAccount}"> >> <h:outputText value="My Account"/> >> </h:commandLink> >> <h:outputText value="|"/> >> </h:panelGroup> >> </h:form> >> </f:subview> >> </jsp:root>