Ok here goes.

What I have is a set of 5 custom tags to output a
<table> with its associated tags.  I've boiled it down
about as far as it can go.  The commandButton would go
in the col tag.  If it is just in the col tag by
itself, it works fine.  If it is in a col tag inside a
row tag it works fine.  But if it is in a col tag
inside a row tag inside a colHdr tag, it fails.  What
happens is, when it fails, all phases are executed,
but the method isn't called.  I haven't include the
tag that outputs the <table> tag and another tag. 
They don't seem to make any difference in the
execution.  So this is about as trimmed down as I can
make it I think.

I really appreciate your help.  Let me know if you
need anything else.

Here is the jsp:

<%@ taglib uri="http://java.sun.com/jsf/html";
prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core";
prefix="f"%>
<%@ taglib uri="/WEB-INF/tld/customjsf.tld"
prefix="cjsf" %>

<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0
transitional//en">

<html>
        <f:view>
                <head><title>Sample page to test commandButton
inside custom tags</title></head>
                <body>
                        <h:form id="tblmaintForm">
                                <h:panelGrid columns="1">
                                        <cjsf:col>
                                                <h:commandButton
action="#{allAuthUser.sortAppIdAscButton}" value="1
works"/>
                                        </cjsf:col>
                                        <cjsf:row>
                                                <cjsf:col>
                                                        <h:commandButton
action="#{allAuthUser.sortAppIdAscButton}" value="2
works"/>
                                                </cjsf:col>
                                        </cjsf:row>
                                        <cjsf:colHdr>
                                                <cjsf:row>
                                                        <cjsf:col>
                                                                <h:commandButton
action="#{allAuthUser.sortAppIdAscButton}" value="3
fails"/>
                                                        </cjsf:col>
                                                </cjsf:row>
                                        </cjsf:colHdr>
                                </h:panelGrid>
                        </h:form>
            </body>
        </f:view>
</html>

Here are the component classes:

/*
 * Created on Dec 19, 2004
 *
 */
package
com.monsanto.ag_it.fieldops.aim.tblmaint.component;

import javax.faces.component.UIColumn;

/**
 * @author rcclark
 *
 * This component implements the RptTableColTag
 */
public class UIRptTableCol extends UIColumn {
        
        public UIRptTableCol() {
                setRendererType("tblmaint.rptTableColRenderer");
        }
}

/*
 * Created on Dec 19, 2004
 *
 */
package
com.monsanto.ag_it.fieldops.aim.tblmaint.component;

import javax.faces.component.html.HtmlDataTable;

/**
 * @author rcclark
 *
 * This component implements the RptTableColHdrTag
 */
public class UIRptTableColHdr extends HtmlDataTable {
                        
        public UIRptTableColHdr() {
                setRendererType("tblmaint.rptTableColHdrRenderer");
        }
}

/*
 * Created on Dec 19, 2004
 *
 */
package
com.monsanto.ag_it.fieldops.aim.tblmaint.component;

import javax.faces.component.UIOutput;

/**
 * @author rcclark
 *
 * This component implements the RptTableRowTag
 */
public class UIRptTableRow extends UIOutput {
        
        public UIRptTableRow() {
                setRendererType("tblmaint.rptTableRowRenderer");
        }
}

Here are the renderers:

/*
 * Created on Dec 19, 2004
 *
 */
package
com.monsanto.ag_it.fieldops.aim.tblmaint.renderer;

import java.io.IOException;
import java.util.Iterator;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.render.Renderer;

import
com.monsanto.ag_it.fieldops.aim.tblmaint.component.UIRptTableCol;
import
com.monsanto.ag_it.fieldops.aim.tblmaint.component.UIRptTableColHdr;

/**
 * @author rcclark
 *
 * Renderer for the RptTableTag
 */
public class RptTableColRenderer extends Renderer {
        
        private String tagType = null;

        public void encodeBegin(FacesContext context,
UIComponent rptTableCol) 
                        throws IOException {

                // First determine if this is a th or td cell
                Object rptTblSection =
rptTableCol.getParent().getParent();
                
                tagType = "td";
                if (rptTblSection instanceof UIRptTableColHdr) {
                        tagType = "th";
                }

                ResponseWriter writer = context.getResponseWriter();
                
                UIRptTableCol rptTblCol = (UIRptTableCol)
rptTableCol;

                writer.write("\t\t\t");
                writer.startElement(tagType, rptTableCol);

//System.out.println("col id=" + (String)
rptTableCol.getAttributes().get("id"));
//              if (!rptTblCol.getId().substring(0,
3).equals("_id")) {
                        writer.writeAttribute("id",
rptTblCol.getClientId(context), null);
//              }

                String colClass = (String)
rptTableCol.getAttributes().get("colClass");
                if (colClass != null) {
                        writer.writeAttribute("class", colClass, null);
                }

                String colSpan = (String)
rptTableCol.getAttributes().get("colSpan");
                if (colSpan != null) {
                        writer.writeAttribute("colSpan", colSpan, null);
                }

                String rowSpan = (String)
rptTableCol.getAttributes().get("rowSpan");
                if (rowSpan != null) {
                        writer.writeAttribute("rowSpan", rowSpan, null);
                }
        }
        public void encodeChildren(FacesContext context,
UIComponent rptTableCol)
                        throws IOException {

                ResponseWriter writer = context.getResponseWriter();

                Iterator iter =
rptTableCol.getChildren().iterator();
                while (iter.hasNext()) {
                        UIComponent child = (UIComponent)iter.next();
                        child.encodeBegin(context);
                        if (child.getRendersChildren()) {
                                child.encodeChildren(context);
                        }
                        child.encodeEnd(context);
                }
        }
        public void encodeEnd(FacesContext context,
UIComponent rptTableCol) 
                        throws IOException {

                ResponseWriter writer = context.getResponseWriter();
                
                writer.endElement(tagType);
                writer.write("\r\n");
        }
        public boolean getRendersChildren() {
                return true;
        }
        public boolean isTransient() {
                return true;
        }
}

/*
 * Created on Dec 19, 2004
 *
 */
package
com.monsanto.ag_it.fieldops.aim.tblmaint.renderer;

import java.io.IOException;
import java.util.Iterator;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.render.Renderer;

import
com.monsanto.ag_it.fieldops.aim.tblmaint.component.UIRptTableColHdr;

/**
 * @author rcclark
 *
 * Renderer for the RptTableTag
 */
public class RptTableColHdrRenderer extends Renderer {

        public void encodeBegin(FacesContext context,
UIComponent rptTableColHdr) 
                        throws IOException {

                ResponseWriter writer = context.getResponseWriter();
                
                UIRptTableColHdr rptTblColHdr = (UIRptTableColHdr)
rptTableColHdr;

                writer.write("\t");
                writer.startElement("thead", rptTableColHdr);
                
//              if (!rptTblColHdr.getId().substring(0,
3).equals("_id")) {
                        writer.writeAttribute("id",
rptTblColHdr.getClientId(context), null);
//              }

                writer.write("\r\n");
        }
        public void encodeChildren(FacesContext context,
UIComponent rptTableColHdr)
                        throws IOException {

                ResponseWriter writer = context.getResponseWriter();
                int dataRowIdx = -1;

                Iterator iter =
rptTableColHdr.getChildren().iterator();
                while (iter.hasNext()) {
                        dataRowIdx++;
                        ((UIRptTableColHdr)
rptTableColHdr).setRowIndex(dataRowIdx);

                        UIComponent child = (UIComponent)iter.next();
                        child.encodeBegin(context);
                        if (child.getRendersChildren()) {
                                child.encodeChildren(context);
                        }
                        child.encodeEnd(context);
                }
        }
        public void encodeEnd(FacesContext context,
UIComponent rptTableColHdr) 
                        throws IOException {

                ResponseWriter writer = context.getResponseWriter();

                writer.write("\t");
                writer.endElement("thead");
                writer.write("\r\n");
        }
        public boolean isTransient() {
                return true;
        }
        public boolean getRendersChildren() {
                return true;
        }
}

/*
 * Created on Dec 19, 2004
 *
 */
package
com.monsanto.ag_it.fieldops.aim.tblmaint.renderer;

import java.io.IOException;
import java.util.Iterator;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.render.Renderer;

import
com.monsanto.ag_it.fieldops.aim.tblmaint.component.UIRptTableRow;

/**
 * @author rcclark
 *
 * Renderer for the RptTableTag
 */
public class RptTableRowRenderer extends Renderer {

        public void encodeBegin(FacesContext context,
UIComponent rptTableRow) 
                        throws IOException {

                ResponseWriter writer = context.getResponseWriter();
                
                UIRptTableRow rptTblRow = (UIRptTableRow)
rptTableRow;
                
                writer.write("\t\t");
                writer.startElement("tr", rptTableRow);

//              if (!rptTblRow.getId().substring(0,
3).equals("_id")) {
                        writer.writeAttribute("id",
rptTblRow.getClientId(context), null);
//              }

                String rowClass = (String)
rptTableRow.getAttributes().get("rowClass");
                if (rowClass != null) {
                        writer.writeAttribute("class", rowClass, null);
                }

                writer.write("\r\n");
        }
        public void encodeChildren(FacesContext context,
UIComponent rptTableRow)
                        throws IOException {

                ResponseWriter writer = context.getResponseWriter();

                Iterator iter =
rptTableRow.getChildren().iterator();
                while (iter.hasNext()) {
                        UIComponent child = (UIComponent)iter.next();
                        child.encodeBegin(context);
                        if (child.getRendersChildren()) {
                                child.encodeChildren(context);
                        }
                        child.encodeEnd(context);
                }
        }
        public void encodeEnd(FacesContext context,
UIComponent rptTableRow) 
                        throws IOException {

                ResponseWriter writer = context.getResponseWriter();

                writer.write("\t\t");
                writer.endElement("tr");
                writer.write("\r\n");
        }
        public boolean getRendersChildren() {
                return true;
        }
        public boolean isTransient() {
                return true;
        }
}

Here are the tag classes:

/*
 * Created on Dec 19, 2004
 *
 */
package
com.monsanto.ag_it.fieldops.aim.tblmaint.taglib;

import javax.faces.application.Application;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;

import
net.sourceforge.myfaces.taglib.html.HtmlColumnTag;

/**
 * @author rcclark
 *
 * This implements the cols for the generic dataTable
tag to support MSIS
 */
public class RptTableColTag extends HtmlColumnTag {
        
        private String colClass = null;
        private String colSpan = null;
//      private String id = null;
        private String rowSpan = null;
        
        public String getComponentType() {
                return "tblmaint.rptTableCol";
        }
        public String getRendererType() {
                return "tblmaint.rptTableColRenderer";
        }

        public void setProperties(UIComponent component) {
                // always call the superclass method
                super.setProperties(component);
                
                setString(component, "colClass", colClass);
                setString(component, "colSpan", colSpan);
//              setString(component, "myId", id);
                setString(component, "rowSpan", rowSpan);
        }
        public void setString(UIComponent component, String
attributeName,
                        String attributeValue) {

                if (attributeValue == null) {
                        return;
                } else {
                        if (isValueReference(attributeValue)) {
                                setValueBinding(component, attributeName,
attributeValue);
                        } else {
                                component.getAttributes().put(attributeName,
attributeValue);
                        }
                }
        }
        public void setValueBinding(UIComponent component,
String attributeName,
                        String attributeValue) {

                FacesContext context =
FacesContext.getCurrentInstance();
                Application app = context.getApplication();
                ValueBinding vb =
app.createValueBinding(attributeValue);
                component.setValueBinding(attributeName, vb);
        }
        /**
         * @return Returns the colClass.
         */
        public String getColClass() {
                return colClass;
        }
        /**
         * @param colClass The colClass to set.
         */
        public void setColClass(String colClass) {
                this.colClass = colClass;
        }
        /**
         * @return Returns the colSpan.
         */
        public String getColSpan() {
                return colSpan;
        }
        /**
         * @param colSpan The colSpan to set.
         */
        public void setColSpan(String colSpan) {
                this.colSpan = colSpan;
        }
        /**
         * @return Returns the rowSpan.
         */
        public String getRowSpan() {
                return rowSpan;
        }
        /**
         * @param rowSpan The rowSpan to set.
         */
        public void setRowSpan(String rowSpan) {
                this.rowSpan = rowSpan;
        }
}

/*
 * Created on Dec 19, 2004
 *
 */
package
com.monsanto.ag_it.fieldops.aim.tblmaint.taglib;

import javax.faces.component.UIComponent;

import
net.sourceforge.myfaces.taglib.html.HtmlDataTableTag;

/**
 * @author rcclark
 *
 * This implements the column headers for the generic
dataTable tag to support MSIS
 */
public class RptTableColHdrTag extends
HtmlDataTableTag {
        
        public String getComponentType() {
                return "tblmaint.rptTableColHdr";
        }
        public String getRendererType() {
                return "tblmaint.rptTableColHdrRenderer";
        }

        public void setProperties(UIComponent component) {
                // always call the superclass method
                super.setProperties(component);
        }
}

/*
 * Created on Dec 19, 2004
 *
 */
package
com.monsanto.ag_it.fieldops.aim.tblmaint.taglib;

import javax.faces.application.Application;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.faces.webapp.UIComponentTag;

/**
 * @author rcclark
 *
 * This implements the rows for the generic dataTable
tag to support MSIS
 */
public class RptTableRowTag extends UIComponentTag {

        private String rowClass = null;

        public String getComponentType() {
                return "tblmaint.rptTableRow";
        }
        public String getRendererType() {
                return "tblmaint.rptTableRowRenderer";
        }

        public void setProperties(UIComponent component) {
                // always call the superclass method
                super.setProperties(component);

                setString(component, "rowClass", rowClass);
        }
        public void setString(UIComponent component, String
attributeName,
                        String attributeValue) {

                if (attributeValue == null) {
                        return;
                } else {
                        if (isValueReference(attributeValue)) {
                                setValueBinding(component, attributeName,
attributeValue);
                        } else {
                                component.getAttributes().put(attributeName,
attributeValue);
                        }
                }
        }
        public void setValueBinding(UIComponent component,
String attributeName,
                        String attributeValue) {

                FacesContext context =
FacesContext.getCurrentInstance();
                Application app = context.getApplication();
                ValueBinding vb =
app.createValueBinding(attributeValue);
                component.setValueBinding(attributeName, vb);
        }
        /**
         * @return Returns the rowClass.
         */
        public String getRowClass() {
                return rowClass;
        }
        /**
         * @param rowClass The rowClass to set.
         */
        public void setRowClass(String rowClass) {
                this.rowClass = rowClass;
        }
}

Here is the tld:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag
Library 1.2//EN"
  "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd";>
<taglib>
        <tlib-version>1.0</tlib-version>
        <jsp-version>1.2</jsp-version>
        <short-name>cust</short-name>
        <uri>//WEB-INF/tld/customjsf.tld</uri>
        <description>JSF Custom Components</description>

        <tag>
                <name>rptTable</name>
        
<tag-class>com.monsanto.ag_it.fieldops.aim.tblmaint.taglib.RptTableTag</tag-class>
                <attribute>
                        <name>id</name>
                        <description>JavaScript id</description>
                </attribute>
                <attribute>
                        <name>tableClass</name>
                </attribute>
        </tag>
        <tag>
                <name>colHdr</name>
        
<tag-class>com.monsanto.ag_it.fieldops.aim.tblmaint.taglib.RptTableColHdrTag</tag-class>
                <attribute>
                        <name>id</name>
                </attribute>
        </tag>
        <tag>
                <name>data</name>
        
<tag-class>com.monsanto.ag_it.fieldops.aim.tblmaint.taglib.RptTableDataTag</tag-class>
                <attribute>
                        <name>id</name>
                </attribute>
                <attribute>
                        <name>value</name>
                        <required>true</required>
                </attribute>
                <attribute>
                        <name>var</name>
                </attribute>
        </tag>
        <tag>
                <name>row</name>
        
<tag-class>com.monsanto.ag_it.fieldops.aim.tblmaint.taglib.RptTableRowTag</tag-class>
                <attribute>
                        <name>id</name>
                </attribute>
                <attribute>
                        <name>rendered</name>
                </attribute>
                <attribute>
                        <name>rowClass</name>
                </attribute>
        </tag>
        <tag>
                <name>col</name>
        
<tag-class>com.monsanto.ag_it.fieldops.aim.tblmaint.taglib.RptTableColTag</tag-class>
                <attribute>
                        <name>colClass</name>
                </attribute>
                <attribute>
                        <name>colSpan</name>
                </attribute>
                <attribute>
                        <name>id</name>
                </attribute>
                <attribute>
                        <name>rendered</name>
                </attribute>
                <attribute>
                        <name>rowSpan</name>
                </attribute>
        </tag>
</taglib>

Here is the faces-config file:

<?xml version="1.0"?>

<!DOCTYPE faces-config PUBLIC
  "-//Sun Microsystems, Inc.//DTD JavaServer Faces
Config 1.0//EN"
  "http://java.sun.com/dtd/web-facesconfig_1_0.dtd";>

<faces-config>
        <!-- global navigation rules -->
        <navigation-rule>
                <navigation-case>
                        <from-outcome>allAuthUser</from-outcome>
                
<to-view-id>/secure/dataentry/allAuthUser.jsp</to-view-id>
                </navigation-case>
        </navigation-rule>
        <!-- page specific navigation rules -->
        <navigation-rule>
                <from-view-id>/login.jsp</from-view-id>
                <navigation-case>
                        <from-outcome>loginSuccess</from-outcome>
                
<to-view-id>/secure/selection/selection.jsp</to-view-id>
                        <redirect/>
                </navigation-case>
        </navigation-rule>
        
        <!-- converters -->
        <converter>
                <converter-id>tblmaint.AppId</converter-id>
        
<converter-class>com.monsanto.ag_it.fieldops.aim.tblmaint.converter.AppIdConverter</converter-class>
        </converter>
        <converter>
                <converter-id>tblmaint.TableRequired</converter-id>
        
<converter-class>com.monsanto.ag_it.fieldops.aim.tblmaint.converter.TableRequiredConverter</converter-class>
        </converter>
        <converter>
        
<converter-id>tblmaint.TableRequiredInteger</converter-id>
        
<converter-class>com.monsanto.ag_it.fieldops.aim.tblmaint.converter.TableRequiredIntegerConverter</converter-class>
        </converter>

        <!-- validators -->
        <validator>
        
<validator-id>tblmaint.TablePriviligeLevelInd</validator-id>
        
<validator-class>com.monsanto.ag_it.fieldops.aim.tblmaint.validator.TablePriviligeLevelIndValidator</validator-class>
        </validator>
 
        <!-- managed beans -->
        <managed-bean>
                <managed-bean-name>user</managed-bean-name>
        
<managed-bean-class>com.monsanto.ag_it.fieldops.aim.tblmaint.to.UserTO</managed-bean-class>
                <managed-bean-scope>session</managed-bean-scope>
        </managed-bean>
        <managed-bean>
                <managed-bean-name>allAuthUser</managed-bean-name>
        
<managed-bean-class>com.monsanto.ag_it.fieldops.aim.tblmaint.model.AllAuthUserModel</managed-bean-class>
                <managed-bean-scope>session</managed-bean-scope>
        </managed-bean>

        <!-- Components -->
        <component>
                <component-type>tblmaint.rptTable</component-type>
        
<component-class>com.monsanto.ag_it.fieldops.aim.tblmaint.component.UIRptTable</component-class>
        </component>
        <component>
        
<component-type>tblmaint.rptTableColHdr</component-type>
        
<component-class>com.monsanto.ag_it.fieldops.aim.tblmaint.component.UIRptTableColHdr</component-class>
        </component>
        <component>
        
<component-type>tblmaint.rptTableData</component-type>
        
<component-class>com.monsanto.ag_it.fieldops.aim.tblmaint.component.UIRptTableData</component-class>
        </component>
        <component>
        
<component-type>tblmaint.rptTableRow</component-type>
        
<component-class>com.monsanto.ag_it.fieldops.aim.tblmaint.component.UIRptTableRow</component-class>
        </component>
        <component>
        
<component-type>tblmaint.rptTableCol</component-type>
        
<component-class>com.monsanto.ag_it.fieldops.aim.tblmaint.component.UIRptTableCol</component-class>
        </component>
        
        <!-- Render Kits -->
        <render-kit>
                <renderer>
                
<component-family>javax.faces.Output</component-family>
                
<renderer-type>tblmaint.rptTableRenderer</renderer-type>
                
<renderer-class>com.monsanto.ag_it.fieldops.aim.tblmaint.renderer.RptTableRenderer</renderer-class>
                </renderer>
        </render-kit>
        <render-kit>
                <renderer>
                
<component-family>javax.faces.Data</component-family>
                
<renderer-type>tblmaint.rptTableColHdrRenderer</renderer-type>
                
<renderer-class>com.monsanto.ag_it.fieldops.aim.tblmaint.renderer.RptTableColHdrRenderer</renderer-class>
                </renderer>
        </render-kit>
        <render-kit>
                <renderer>
                
<component-family>javax.faces.Data</component-family>
                
<renderer-type>tblmaint.rptTableDataRenderer</renderer-type>
                
<renderer-class>com.monsanto.ag_it.fieldops.aim.tblmaint.renderer.RptTableDataRenderer</renderer-class>
                </renderer>
        </render-kit>
        <render-kit>
                <renderer>
                
<component-family>javax.faces.Output</component-family>
                
<renderer-type>tblmaint.rptTableRowRenderer</renderer-type>
                
<renderer-class>com.monsanto.ag_it.fieldops.aim.tblmaint.renderer.RptTableRowRenderer</renderer-class>
                </renderer>
        </render-kit>
        <render-kit>
                <renderer>
                
<component-family>javax.faces.Column</component-family>
                
<renderer-type>tblmaint.rptTableColRenderer</renderer-type>
                
<renderer-class>com.monsanto.ag_it.fieldops.aim.tblmaint.renderer.RptTableColRenderer</renderer-class>
                </renderer>
        </render-kit>
        
        <!-- Lifecycle -->
        <lifecycle>
        
<phase-listener>com.monsanto.ag_it.fieldops.aim.tblmaint.util.PhaseListenerUtil</phase-listener>
        </lifecycle>
</faces-config>

Here is the phase listener:

package com.monsanto.ag_it.fieldops.aim.tblmaint.util;

import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;

/**
 * This clas contains general purpose methods used by
this application.
 */
public class PhaseListenerUtil implements
PhaseListener {

        public PhaseId getPhaseId() {
                PhaseId phaseId = PhaseId.ANY_PHASE;
                return phaseId;
        }
        public void afterPhase(PhaseEvent e) {
                System.out.println("afterPhase " + e.getPhaseId());
        }
        public void beforePhase(PhaseEvent e) {
                System.out.println("beforePhase " + e.getPhaseId());
        }
}

Here is the backing bean:

package
com.monsanto.ag_it.fieldops.aim.tblmaint.model;

import org.apache.log4j.Logger;

public class AllAuthUserModel { 
        private Logger logger =
Logger.getLogger("com.javawebapps");


//--------------------------------------------------------------------------------
        // The following are all of the commandButton methods
for this model

//--------------------------------------------------------------------------------
        /**
         * Refresh the page with the sorted list
         * 
         * @return navigation action
         */
        public String sortAppIdAscButton() {
System.out.println("in sortAppIdAscButton");
                return "allAuthUser";
        }
        /**
         * Refresh the page with the sorted list
         * 
         * @return navigation action
         */
        public String sortAppIdDscButton() {
System.out.println("in sortAppIdDscButton");
                return "allAuthUser";
        }
}

Thanks,
Ray

--- Ray Clark <[EMAIL PROTECTED]> wrote:

> Thanks for the response.  I was going to try and
> trim
> down the page and play with moving the commandButton
> around to see if it worked some places and not
> others.
>  It may be Monday, but I'll send it out as soon as I
> can.
> 
> Thanks a bunch,
> Ray
> 
> --- Heath Borders <[EMAIL PROTECTED]> wrote:
> 
> > Get the page into a state where you're using the
> > fewest number of tags
> > (so that we have to dig through the least amount
> of
> > code).  Then,
> > you're going to need to post the all code
> associated
> > with the custom
> > tags (your Tag, Component, and Renderer) for each
> > tag.
> > 
> > 
> > On Thu, 30 Dec 2004 18:01:08 -0800 (PST), Ray
> Clark
> > <[EMAIL PROTECTED]> wrote:
> > > Does anyone have any ideas on what would cause
> my
> > > commandButton, that works fine outside my custom
> > tag,
> > > not to invoke its method when it is inside my
> > custom
> > > tag?
> > > 
> > > I get no message, no logging error, the page
> looks
> > > like it works fine, all the phases are
> processed,
> > and
> > > yet it doesn't call my method.
> > > 
> > > I'll post whatever code you want.  I just didn't
> > know
> > > what to post.
> > > 
> > > Here is the part of my jsp that has the command
> > button
> > > inside my custom tags.
> > > 
> > > <cjsf:rptTable tableClass="tableClass"
> > > id="rptTableId">
> > >         <cjsf:colHdr>
> > >                 <cjsf:row>
> > >                         <cjsf:col
> > colClass="header">
> > >                                 <h:commandButton
> > > action="#{allAuthUser.sortAppIdAscButton}"
> > value="A"/>
> > >                                 <h:outputText
> > value="User Id"/>
> > >                         </cjsf:col>
> > > 
> > > Thanks,
> > > Ray
> > > 
> > > --- Ray Clark <[EMAIL PROTECTED]> wrote:
> > > 
> > > > Well, I now have my app up and running under
> > > > myFaces.  I had to do some tweeking to get the
> > app
> > > > to run under myFaces.  But it is running now.
> > > >
> > > > I still have the same problem.  I can't get
> the
> > > > commandButton to invoke the method in the
> action
> > > > attribute during the invoke application phase.
> > > >
> > > > I have a set of 5 custom tags that render a
> > table
> > > > and its associated tags.  I needed to do a
> > custom
> > > > component because the JSF DataTable doesn't
> > support
> > > > rowspan, colspan, and I think multi line
> column
> > > > headers (ie multi tr tags in the thead tag).
> > > >
> > > > The only message that I see is in the log at
> > > > startup.  It says.
> > > >
> > > > session.ManagerBase - Cannot serialize session
> > > > attribute
> > > >
> > >
> >
>
net.sourceforge.myfaces.application.jsp.JspStateManagerImpl.SERIALIZED_VIEW-/secure/dataentry/allAuthUser.jsp
> > > > for session 1B0C75CC467BB3B9D2EB116EDD3263BB
> > > > java.io.NotSerializableException:
> > > >
> > javax.faces.application.StateManager$SerilizedView
> > > >      at
> > > >
> java.io.ObjectOutputStream.writeObject0(Unknown
> > > > Source)
> > > >      ...
> > > >
> > > > Other than that everything seems to be running
> > fine
> > > > but it just doesn't call my method.  Anyone
> got
> > any
> > > > ideas?
> > > >
> > > > Thanks,
> > > > Ray
> > > >
> > > > Ray Clark <[EMAIL PROTECTED]> wrote:
> > > > Thanks so much for responding.
> > > >
> > > > The page renders correctly.  The problem is
> that
> > the
> > > > method for the button is only invoked if I
> have
> > the
> > > > button under the rptTable tag.  The method
> > doesn't
> > > > get invoked if I move it anyplace else.
> > > >
> > > > Thanks,
> > > > Ray
> > > >
> > > > Heath Borders <[EMAIL PROTECTED]> wrote:
> > > > Do your colHdr, row, or col tags have
> > > > getRendersChildren() set to
> > > > true? if so, it is your responsibility to make
> > sure
> > > > that
> > > > h:commandButton is rendered (usually, by
> calling
> > the
> > > > encodeBegin,
> > > > encodeChildren, encodeEnd methods).
> > > >
> > > >
> > > > On Thu, 30 Dec 2004 05:51:20 -0800 (PST), Ray
> > Clark
> > > > wrote:
> > > > >
> > > > >
> > > > > Hi All:
> > > > >
> > > > > I just subscribed seconds ago. This is
> > exciting. I
> > > > think that you people
> > > > > are doing great work, and I am so excited
> for
> > you
> > > > because you have been
> > > > > accepted by Apache. Way to go.
> > > > >
> > > > > First off, I am fairly new to JSF. I am
> > > > researching it for my company to
> > > > > see if it will fit our needs and is ready
> for
> > us
> > > > to start using. As a proof
> > > > > of concept I converted one of the pages here
> > to
> > > > JSF. It was my first page
> > > > > so it took me a little while but it all
> worked
> > out
> > > > fine. So now I'm trying
> > > > > to do some custom components to render a
> table
> > > > because the JSF DataTable
> > > > > doesn't have the capabilities that we need.
> > > > >
> > > > > I sent this question to Matthias Wessendorf
> at
> > the
> > > > jsf-developers yahoo
> > > > > group and he recommended that I send my
> > question
> > > > on to you guys/gals.
> > > > > Thanks for taking the time to read my email.
> > > > >
> > > > > I have a set of 5 custom components that
> > implement
> > > > the HTML table, tr, th,
> > > > > td, etc tags. I tried using the JSF
> dataTable
> > but
> > > > it doesn't support
> > > > > rowspan and colspan, and I don't think that
> it
> > > > supports multi line column
> 
=== message truncated ===


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Reply via email to