Hi there,
I am trying something similar but it is not working out. I have a datatable in which i need to display a colum conditionally as a commandlink and as a read-only. Here is my code:
JSP:
<h

anelGroup id="siPanel">
<t

ataTable id="siDataTable" border="1"
width="100%"
styleClass="gridStyle"
rowClasses="gridStyle-tr-data, gridStyle-tr-alt-data"
columnClasses="colCenter, colLeft, colRight, colRight, colRight, colRight, colCenter"
value="#{siBean.defaultSIList}" rows="20"
renderedIfEmpty="false"
var="si"
preserveDataModel="true">
<h:column>
<f:facet name="header">
<h

utputText value=""/>
</f:facet>
<h

anelGroup rendered="#{siBean.isDefault}">
<h:commandLink action="#{siBean.setDefaultSI}" immediate="true">
<h

utputText value="#{si.defaultHeader}" style="text-align:center" />
<t:updateActionListener property="#{siBean.instructionId}" value="#{si.instructionId}" />
<t:updateActionListener property="#{siBean.clientAccountNumber}" value="#{si.clientAccountNumber}" />
<t:updateActionListener property="#{siBean.clientSystemId}" value="#{si.clientSystemId}" />
<t:updateActionListener property="#{siBean.clientFirm}" value="#{si.clientFirm}" />
</h:commandLink>
</h

anelGroup>
<h

anelGroup rendered="#{!siBean.isDefault}">
<h

utputText value="#{si.defaultHeader}" style="text-align:center" />
</h

anelGroup>
</h:column>
And the backing bean looks like:
public List<StandardInstructions> getDefaultSIList() {
if (defaultSIList == null) {
defaultSIList = Collections
.synchronizedList(new java.util.ArrayList<StandardInstructions>());
} else {
defaultSIList.clear();
}
try {
CashwebDAO dao = CashwebDAO.getInstance();
StringBuffer where = new StringBuffer();
where.append(" where ");
if (null != getFromAccNoSearch()
&& !"null".equals(getFromAccNoSearch())
&& "true".equals(getFromAccNoSearch())) {
if(null != getClientAccountNumber()
&& !"null".equals(getClientAccountNumber())
&& !"".equals(getClientAccountNumber())){
where.append("si.account_no = '" + getClientAccountNumber() + "'");
System.out.println(" Inside if from acc no search ---------");
where.append(" and si.status = 'APPROVED' ");
}else{
where.append(" si.status = 'APPROVED' ");
}
}
dao.getDefaultSIs(new CashwebDAOBridgeAdapter() {
public void processSIs(ResultSet rs) throws SQLException {
System.out.println(" INSIDE processSIs ---------");
System.out.println(" rs size ---------" + rs.getFetchSize());
String beneficiaryType;
String dfltInstruction;
while (rs.next()) {
StandardInstructions si = new StandardInstructions();
si.setInstructionId(rs.getInt(1));
si.setState(rs.getString(2));
si.setClientAccountNumber(rs.getString(3).trim());
si.setDeliveryMethod(rs.getString(4));
si.setNumberOfParties(rs.getInt(5));
beneficiaryType = rs.getString(6);
if (beneficiaryType != null)
beneficiaryType = beneficiaryType.equals("Y") ? "Financial Institution"
: "Individual/Corporate";
si.setBeneficiaryName(beneficiaryType);
si.setClientSystemId(rs.getString(7));
si.setClientFirm(rs.getString(8));
dfltInstruction = rs.getString(9);
System.out.println(" dfltInstruction ---------" + dfltInstruction);
if (rs.wasNull() || dfltInstruction == null || dfltInstruction == "null" || dfltInstruction == "NULL" || dfltInstruction.trim().length() == 0) {
System.out.println(" setting default false---------" );
si.setDefaultHeader("Make Default");
System.out.println(" setting null---------" );
si.setDefaultNumber(null);
setDefault(false);
//setDefault(false);
}else{
si.setDefaultHeader("Default");
System.out.println(" setting true---------" );
si.setDefaultNumber("true");
setDefault(true);
}
defaultSIList.add(si);
}
}
}, where);
} catch (Exception exc) {
log("Exception getting the default SI list.", exc);
}
return defaultSIList;
}
But i get the error:
11:49:19,728 ERROR [[jsp]] Servlet.service() for
servlet jsp threw exception
javax.faces.el.PropertyNotFoundException: Bean: com.daiwausa.cashweb.jsf.mbeans.SIBean, property: isDefault
at org.apache.myfaces.el.PropertyResolverImpl.getPropertyDescriptor(PropertyResolverImpl.java:445)
at org.apache.myfaces.el.PropertyResolverImpl.getPropertyDescriptor(PropertyResolverImpl.java:416)
at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:379)
at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:71)
at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:532)
at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:378)
at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:822)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:436)
at org.apache.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:427)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:448)
at org.apache.myfaces.renderkit.html.HtmlTableRendererBase.renderColumnBody(HtmlTableRendererBase.java:195)
at org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.renderColumnBody(HtmlTableRenderer.java:211)
at org.apache.myfaces.renderkit.html.HtmlTableRendererBase.encodeColumnChild(HtmlTableRendererBase.java:168)
at org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeColumnChild(HtmlTableRenderer.java:161)
at org.apache.myfaces.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:154)
at org.apache.myfaces.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:94)
at org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeChildren(HtmlTableRenderer.java:57)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:319)
at org.apache.myfaces.renderkit.RendererUtils.renderChild(RendererUtils.java:444)
at org.apache.myfaces.renderkit.RendererUtils.renderChildren(RendererUtils.java:427)
at org.apache.myfaces.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:62)
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.defaultmanagement_jsp._jspx_meth_h_panelGroup_0(org.apache.jsp.defaultmanagement_jsp:285)
at org.apache.jsp.defaultmanagement_jsp._jspx_meth_h_form_0(org.apache.jsp.defaultmanagement_jsp:235)
at org.apache.jsp.defaultmanagement_jsp._jspx_meth_f_view_0(org.apache.jsp.defaultmanagement_jsp:187)
at org.apache.jsp.defaultmanagement_jsp._jspService(org.apache.jsp.defaultmanagement_jsp:129)
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)
Please help me
Thanks in advance,
Julia