Problems in JSF t:dataTable /t:dataTable

hi
i am using <t:dataTable> to create jsf table.In the datatable each column has one <h:commandLink>.i had action methods to each and every column.At the same Jsf page,i am having some textfields using <h:inputText>.
My problem is when i click the datatable colume link,it goes to the same jsf page,but there is no textfields at the same page.i am not expected to same jsf page.i wants to navigate to some other jsf pages.i had one solution i.e,i used binding method for each and every Link.The problem was solved temporarly.eventhough i am having solution using binding method.it is not applicable for huge data as i have large data.so what should i do to have exact solution .At the same time,i don't need binding methods.
Advance thanks
rgds
OasisDeserts

Hi.
J solve the problem partly and here is the problem and solution:
Problem - JDeveloper 10.1.3 have problem in showing table when code look like this:
<h:dataTable width="350" value="#{infoBean.popular}" var="popular_">
<h:column>
<f:facet name="header">
<h:panelGroup>
<h:commandLink action="POPULAR">
<h:outputText value="Najpopularnije"/>
</h:commandLink>
</h:panelGroup>
</f:facet>
<h:commandLink>
<h:outputText value="#{popular_}" converter="ProductTitle"/>
</h:commandLink>
</h:column>
</h:dataTable>
Solution - When J change code to this 'Design' tab shows the table but not the text in 'outputText'(here #{popular_}):
<h:outputText value="#{popular_}">
<f:converter converterId="ProductTitle"/>
</h:outputText>
Please try this!

Similar Messages

  • Problem with jsf DataTable

    when data is fetch using user criteria:
    i have a problem with jsf DataTable. I use e request bean to populate the datatable and i insert a commandButton column. The data dispay successfully into the datatable, but when a push the button on the row...the page simply refresh and notinhg else
    when data is fetch using constants:
    The data dispay successfully into the datatable, when a push the button on the row...the action execute OK

    Hi,
    I don't think that with this description only anybody on this list is able to help you.
    I use e request bean to populate the datatable and i insert a commandButton column
    What is a command button column and what does it do ?
    but when a push the button on the row...the page simply refresh and notinhg else
    What did you do to debug the problem ?
    when data is fetch using constants
    What does this mean ?
    Frank

  • Very big problem with JSF about FORM and "id=" for HTML form's elements and

    I have discovered a very big problem with JSF about FORM and "id=" for HTML form's elements and java instruction "request.getParameterNames()".
    Suppose you have something like this, to render some datas form a Java Beans :
    <h:dataTable value="#{TablesDb2Bean.myDataDb2ListSelection}" var="current" border="2" width="50%" cellpadding="2" cellspacing="2" style="text-align: center">
    <h:column>
    <f:facet name="header">
    <h:outputText value="Name"/>
    </f:facet>
    <h:outputText id="nameTableDb2" value="#{current.db2_name_table}"/>
    </h:column>
    </h:dataTable>
    Everything works fine...
    Suppose you want to get the name/value pairs for id="nameTableDb2" and #{current.db2_name_table} to process them in a servlet. Here is the HTML generated :
    <td><span <span class="attribute-name">id=<span class="attribute-value">"j_id_jsp_1715189495_22:0:nameTableDb2">my-table-db2-xxxxx</span></td>
    You think you can use the java instructions :
    Enumeration NamesParam = request.getParameterNames();
    while (NomsParam.hasMoreElements()) {
    String NameParam = (String) NamesParam.nextElement();
    out.println("<h4>"++NameParam+ "+</h4>);
    YOU ARE WRONG : request.getParameterNames() wants the syntax *name="nameTableDb2" but JSF must use id="nameTableDb2" for "<h:outputText"... So, you can't process datas in a FORM generated with JSF in a Servlet ! Perhaps I have made an error, but really, I wonder which ?
    Edited by: ungars on Jul 18, 2010 12:43 AM
    Edited by: ungars on Jul 18, 2010 12:45 AM

    While I certainly appreciate ejb's helpful responses, this thread shows up a difference in perspective between how I read the forum and how others do. Author ejb is correct in advising you to stay inside JSF for form processing if form processing is what you want to do.
    However, I detect another aspect to this post which reminds me of something Marc Andreesen once said when he was trying to get Netscape off the ground: "there's no such thing as bad HTML."
    In this case, I interpret ungar's request as a new feature request. Can I phrase it like this?
    "Wouldn't it be nice if I could render my nice form with JSF but, in certain cases, when I REALLY know what I'm doing" just post out to a separate servlet? I know that in this case I'll be missing out on all the nice validation, conversion, l10n, i18n, ajax, portlet and other features provided by JSF".
    If this is the case, because it really misses the point of JSF, we don't allow it, but we do have an issue filed for it
    https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=127
    If you can't wait for it to be fixed, you could decorate the FormRenderer to fix what you want.
    I have an example in my JSF book that shows how to do this decoration. http://bit.ly/edburnsjsf2
    Ed

  • Problems in JSF t:commandlink

    Hello,
    I am facing a problem with JSF Command link
    I have three JSP pages with one backing bean in session scope.The property defined in the backing bean is an Object type which contains fields mapped to the database.
    The navigation between pages is through hyperlinks.
    I enter data on page 1 and move to page 2.Again due to some reasons if I come back to first page I dont see values restored on the textfields on page 1.It is again reset when page 1 loads.I have to restore values and I have to do it using command links.I do not want button to navigate between two pages.
    How can I restore data
    I set the data on textfields as #{BackingBean.property.property_field}
    I am new to JSF.can anyone suggest how to restore values while navigating.
    [email protected]
    Thankyou,
    Pankaj Shirke

    on the commandLink tag are you using the immediate = "ture" if so remove it or set it to false

  • Problems with JSF and included subviews

    Hi everybody,
    I' ve got a problem with JSF and included subviews which makes me going
    crazy. I've got no clue why my web-pages are represent wrongly. The only
    tip I've got is that it must be connected with the kind I do include my JSF-pages.
    When I use <%@file="sub.jsp"%> my pages are are represent right. When I use <jsp:include page="Sub.jsp" /> or <c:import url="Sub.jsp" /> ( mark: the usage of flush="true" or flush="false" doesn't matter )
    my pages are represent wrongly.
    The usage of tags like f:facet or f:verbatim were also included but didn't point to an solution.
    I searched the whole Sun Developer Forum and some other web-sites for any solution for my problem but the given hints and clues didn't help. Now I'm trying to post my problem directly in Sun's Forum in hope to get help.
    My environment is the following:
    JAVA JDK 1.5 Update 4
    Tomcat 5.5.9
    JSLT 1.1
    Sun JSF 1.1
    Win 2K
    Here's my code:
    Main.jsp
    <%@ page language="java"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%
              String path = request.getContextPath();
              String basePath = request.getScheme() + "://" + request.getServerName()
                        + ":" + request.getServerPort() + path + "/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
         <base href="<%=basePath%>">
         <meta http-equiv="pragma" content="no-cache">
         <meta http-equiv="cache-control" content="no-cache">
         <meta http-equiv="expires" content="0">   
         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
         <meta http-equiv="description" content="This is my page">
         <link rel="stylesheet" href="stil.jsp" type="text/css" />
    </head>
    <body>
         <f:view>
              <h:form>
                   <div class="table">
                        <div class="tr">
                             <h:outputText styleClass="tdleft" value="value 1"/>
                             <h:outputText styleClass="tdinfo" value="value 2"/>
                        </div>
                        <div class="tr">
                             <h:outputText styleClass="tdleft" value="value 3"/>
                             <h:outputText styleClass="tdinfo" value="value 4"/>
                        </div>
                   </div>
              </h:form>     
              <jsp:include page="Sub.jsp" />
         </f:view>
    </body>
    </html>Sub.jsp
    <%@ page language="java"%>
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <f:subview id="subview">
         <h:form>
              <div class="table">
                   <div class="tr">
                             <h:outputText styleClass="tdleft" value="value 11"/>
                             <h:outputText styleClass="tdinfo" value="value 22"/>
                   </div>
                   <div class="tr">
                        <h:outputText styleClass="tdleft" value="value 33"/>
                        <h:outputText styleClass="tdinfo" value="value 44"/>
                   </div>
              </div>
         </h:form>
    </f:subview>stil.jsp
    <%@page contentType="text/css"%>
    <%
        String  schwarz     = "#000000",
                grau1       = "#707070",
                grau2       = "#c0c0c0",
                grau3       = "#e0e0e0",
                grau4       = "#e8e8e8",
                grau5       = "#fdfdfd",
                blau        = "#0000dd",
                tuerkis     = "#00cfff";
        String  liniendicke = "1px",
                linienart   = "solid";
        String allgemeineTextFarbe           = schwarz;
        String allgemeineHintergrundFarbe    = grau3;
        String infoTextFarbe                 = blau;
        String fieldsetRandFarbe             = blau;
        String fieldsetRandDicke             = liniendicke;
        String fieldsetRandArt               = linienart;
        String hrLinienFarbe                 = blau;
        String hrLinienDicke                 = liniendicke;
        String hrLinienArt                   = linienart;
        String inputAktivHintergrundFarbe    = grau5;
        String inputReadonlyHintergrundFarbe = grau4;
        String inputPassivHintergrundFarbe   = grau4;
        String inputPassivFarbe              = schwarz;
        String inputRandFarbe1               = grau1;
        String inputRandFarbe2               = grau5;
        String inputRandDicke                = liniendicke;
        String inputRandArt                  = linienart;
        String inputButtonHintergrundFarbe   = grau3;
        String legendenFarbe                 = blau;
        String linkFarbe                     = blau;
        String linkAktivFarbe                = tuerkis;
        String linkBesuchtFarbe              = blau;
        String linkFocusFarbe                = tuerkis;
        String objectGitterFarbe             = grau5;
        String objectGitterDicke             = liniendicke;
        String objectGitterArt               = linienart;
        String tabellenGitterFarbe           = grau5;
        String tabellenGitterDicke           = liniendicke;
        String tabellenGitterArt             = linienart;
    %>
    <%-- ----------------------------------------------- --%>
    <%-- Textdarstellung mittels der Display-Eigenschaft --%>
    <%-- in den Tags div und span                        --%>
    <%-- ----------------------------------------------- --%>
    *.table {
        display:table;
        border-collapse:collapse;
    *.tbody {
        display:table-row-group;
    *.tr {
        display:table-row;
    *.td,*.tdright,*.tdleft,*.tdinfo,*.th {
        display:table-cell;
        padding:3px;
        vertical-align:middle;
    *.td,*.th {
        text-align:center;
    *.tdright {
        text-align:right;
    *.tdleft {
        text-align:left;
    *.tdinfo {
        color:<%=infoTextFarbe%>;
        text-align:right;
    *.th {
        color:<%=infoTextFarbe%>;
        font-weight:bold;
    }thanks in advance
    benjamin

    Hello Zhong Li,
    many thanks for your post, but it didn't work.
    My problem is that the JSF-Components im my included or imported
    JSP-Pages does not accept any kind of style or styleClass for
    designing. The components take over the informations for colors
    but not for alignment.
    When I take a look at the generated JAVA-Source in $TOMCAT/WORK/WEBAPP for my sub.jsp ( sub.java )
    it seems that the resulting HTML-page would be presented correctly.
    But later when I start the application via Firefox or Mozilla the html-sourcecode is totally wrong.
    In my example I create a simple grid with 2 rows and 2 columns.
    Both columns contains JSF-Outtext-Components and are included with div-tags.
    The generated Sub.java shows that the text would be setted in the div-tags. Unfortunately the html-sourcecode represented by my browser shows that jsf-text is not setted in the tags but in the <h:form> tags. The div-tags are neither rounded by <h:form> nor containing the JSF-OutText-Components.
    Any clue?
    Many thanks Benjamin
    Here is the html-code from Firefox:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
         <base href="http://polaris21:8080/webtest/">
         <meta http-equiv="pragma" content="no-cache">
         <meta http-equiv="cache-control" content="no-cache">
         <meta http-equiv="expires" content="0">   
         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
         <meta http-equiv="description" content="This is my page">
         <link rel="stylesheet" href="stil.jsp" type="text/css" />
    </head>
    <body>
         <form id="_id0" method="post" action="/webtest/Main.faces" enctype="application/x-www-form-urlencoded">
              <div class="table">
                   <div class="tr">
                        <span class="tdleft">value 1</span>
                        <span class="tdinfo">value 2</span>
                   </div>
                   <div class="tr">
                        <span class="tdleft">value 3</span>
                        <span class="tdinfo">value 4</span>
                   </div>
              </div>
              <input type="hidden" name="_id0" value="_id0" />
         </form>     
          <form id="SUB:_id5" method="post" action="/webtest/Main.faces" enctype="application/x-www-form-urlencoded">
               <span class="tdleft">value 11</span>
              <span class="tdinfo">value 22</span>
              <span class="tdleft">value 33</span>
              <span class="tdinfo">value 44</span>
              <input type="hidden" name="SUB:_id5" value="SUB:_id5" />
         </form>
         <div class="table">
              <div class="tr">
              </div>
              <div class="tr">
              </div>
         </div>
    </body>
    </html>

  • Jsf datatable inside datatable component rendering problem.

    I am creating an online survey application using JSF with IceFaces component library. The survey can have any number of questions. Each question can be any one of the types checkbox, radio button, etc with multiple options.
    For this, I am using a datatable to dynamically add a question to the survey. Inside that datatable, I am using another datatable to add option to the survey.
    Now the problem is, if I keep on click on add question button, in the outer data table, question is being added without any issue. Once I click on inner data table to add a option to any of the added questions, I am able to add. But after that, if I click again on add question button, it is not working.
    This is my xhtml code:
    <ice:dataTable id="icePnlQuestionAdd" var="questAdd" value="#{createSurveyManagedBean.surveyQuestionList}">
    <ice:column>
    <table border="0" cellspacing="0" cellpadding="0">
    <tr>
    <th><ice:outputText value="Question English" style="white-space: nowrap;" /></th>                                        
    <td colspan="15">                              
    <ice:inputText id="QuestionEn" style="width:485px;" value="#{questAdd.questionEn}" />
    </td>
    </tr>
    <tr>
    <ice:dataTable id="icePnlOptionAdd" var="optionAdd" value="#{questAdd.surveyQuestionOptionList}">                               <ice:column>
    <th><ice:outputText value="Option " /></th>
    <td><ice:inputText id="OptionEn" value="#{optionAdd.optionEn}" /></td>
    </ice:column>
    </ice:dataTable>
    </tr>
    </table>
    </ice:column>
    </ice:dataTable>
    This is the add question method:
    public String addQuestion() {
    SurveyDTO addSurveyQuestionDTO = new SurveyDTO();          
    questionNum = surveyQuestionList.size();          
    addSurveyQuestionDTO.setQuestionNum(questionNum);
    surveyQuestionList.add(addSurveyQuestionDTO);
    return "createSurvey";
    This is the add option method:
    public String addOption() {
    FacesContext context = FacesContext.getCurrentInstance();          
    if (context.getExternalContext().getRequestParameterMap().get("questionNum") != null) {
    String questionNum = (String) context.getExternalContext().getRequestParameterMap().get("questionNum");
    int selectedQuestionNum = Integer.valueOf(questionNum);                    
    SurveyQuestionOptionDTO surveyQuestionOptionDTO = new SurveyQuestionOptionDTO();
    surveyQuestionList.get(selectedQuestionNum).getSurveyQuestionOptionList().add(surveyQuestionOptionDTO);
    return "createSurvey";
    }

    Bind the h:datatable in the jsp to UIDataTable component in your java code. Then when the action method is invoked, use DataTable.getWrappedObject() to get the model. Cast the model to whatever your type is (List, Array...) and then iterate through the model to process individual rows.

  • JSF - Problem in Retrieving selected record from datatable

    I am new to JSF and in the process of developing a new web application using JSF.
    I have problem in retrieving the selected record from a datatable. I am using h:datatable tag and h:commandlink in a column for selecting a particular row on the datatable.
    I have populated the data to the datatable by binding a bean and its property.
    When I retrieve also I am binding to a bean in the action attribute of the h:commandlink tag in h:column of that datatable.But when I try to bind the bindign attribute of the h:datatable tag to the datatable instance in my Bean , my JSF File gets corrupted..
    How to implement this without any issue??plz help me regarding this.

    HI
    Try the below code
    DATA lo_nd_del TYPE REF TO if_wd_context_node.
    DATA lo_el_del TYPE REF TO if_wd_context_element.
    DATA ls_del TYPE wd_this->Element_del.
    DATA lo_nd_et_postab_1 TYPE REF TO if_wd_context_node.
    DATA lo_el_et_postab_1 TYPE REF TO if_wd_context_element.
    DATA ls_et_postab_1 TYPE wd_this->Element_del.
    DATA lt_et_postab_1 TYPE wd_this->Elements_del.
    DATA: wa_temp TYPE REF TO if_wd_context_element,
    lt_temp TYPE wdr_context_element_set.
    * navigate from <CONTEXT> to <ET_POSTAB_1> via lead selection
    lo_nd_et_postab_1 = wd_context->path_get_node( path = `ZSHP_EXTENDED_DUE_LI.CHANGING_3.ET_POSTAB_1` ).
    CALL METHOD lo_nd_et_postab_1->get_selected_elements
    RECEIVING
    set = lt_temp.
    * navigate from <CONTEXT> to <DEL> via lead selection
    lo_nd_et_postab_1 = wd_context->get_child_node( name = wd_this->wdctx_del ).
    LOOP AT lt_temp INTO wa_temp.
    CALL METHOD wa_temp->get_static_attributes
    IMPORTING
    static_attributes = ls_et_postab_1.
    ls_et_postab_1-vbeln = del. // adding new attribute value.
    APPEND ls_et_postab_1 TO lt_et_postab_1.
    CLEAR ls_et_postab_1.
    ENDLOOP.
    lo_nd_et_postab_1->bind_table( new_items = lt_et_postab_1 ).

  • Alignment problems in JSF datatable

    Hi,
    In my JSF data-table, i have few alignment problems.
    For Example, I have 4 columns, Emp-Id, First-Name,Last-name and Age.
    What happens is, sometimes, the value in the First-Name cell moves into the Last-Name cell, leadiing to alignment problems. But this is not happening always. Occasionlly this happens.
    I tried with iFrames and also by having fixed width for each cell, then also this problem is persisting.
    Is it something to do with the datatable display in JSF?
    Any suggestions/ideas on how to resolve this problem would be of immense help.
    Thanks

    Hi
    What happens if you delete the text and retype in and change alignment ?
    Does the same issue happens with all sub menu items ?
    Please provide the site url.
    Thanks,
    Sanjit

  • Datatable rendering problem in jsf 1.2!

    Hi,
    I want to display a table populated with some data and My approach is the simplest.....
    I am using a h:datatable in my jsf page.The table has got value binding with backing bean
    list which I am populating inside getter method. I am using jsf 1.2 in tomcat 6.
    <h:dataTable id="table1" value="#{bb_test.myList}"
                   binding="#{bb_test.table1}" var="user">
                   <h:column id="column1">
                        <f:facet name="header">
                             <h:outputText value="User Id" />
                        </f:facet>
                        <h:outputText value="#{user.userId}" />
                   </h:column>
              </h:dataTable>And backing bean method
    public List<MyObject> getMyList(){
              List<MyObject> myObjectList = myService.getMyObjectList(1, 12);
              return myObjectList ;
         }But I am getting following exception
    Caused by: org.apache.jasper.JasperException: Unable to compile class for JSP:
    An error occurred at line: 17 in the jsp file: /pages/test.jsp
    The method setVar(String) in the type DataTableTag is not applicable for the arguments (JspValueExpression)
    14:      <h:form>
    15:           
    16:           <h:commandButton value="-->" action="#{bb_test.showNextPage}" />
    17:           <h:dataTable id="table1" value="#{bb_test.loginList}"
    18:                binding="#{bb_test.table1}" var="user">
    19:                <h:column id="column1">
    20:                
    I spent good amount of time behind googling..but all in vain...
    Please do respond if u have any idea about what is happening here and what could be the possible solution.
    Thanks.
    Ghosh

    Hmm, [one more|http://forums.sun.com/thread.jspa?threadID=5344554]? You're using JSF 1.2_09?
    There's a bugfix related to the 'var' attribute of the datatable in JSF 1.2_10. Upgrade your JSF version.

  • JSF Command Link inside DataTable has to be clicked twice in order to work

    I currently have a command link inside of a dataTable. However, when I go to the page and click the link nothing happens. It appears that the page is refreshed but looking at the logs nothing is done. However, if you click the same link again everything is updated properly. How do I get the command link to work properly? And, I have everything operating in the session scope.

    sdgorham wrote:
    No I do not have h:messages on the page. Just add it for debugging purposes. There might have been a validation or conversion error occurred which wasn't 'catched' by any h:message.
    Unfortunately, upgrading to another version isn't an option at the moment. OK, I checked the MyFaces page and 1.1.5 is indeed the latest JSF 1.1 implementation.
    Is there any other possible solutions that are more like a hyperlink than the command button. What exactly is causing the problem that I described?Have you tried if it works with a button or not? Only then we can be more sure about the cause of the problem.

  • DataTable in dataTable fix details (JSF 1.1)

    I posted a message yesterday indicating that some of the problems with nested dataTables had not been fixed in the JSF 1.1 release. Since that posting, I have done some more research, and have more specific information regarding the remaining problems and a way to fix them. The remaining problems are:
    1) Values from inputText fields in the inner dataTable are ignored on submit (except for the last row of the table). The problem is that processDecodes is called on the inner table component multiple times (once per row of the outer table), and the "saved = new HashMap();" statement effectively wipes out any values that were decoded from the previous row, so that at the end of the process, the only decoded values that remain are those from the last row. My suggested fix for that problem is:
    a) to create a "boolean isOuterTable()" method on UIData that determines whether or not this table is the outermost table (i.e. go up through the parent chain and see if there are any UIData ancestors).
    b) create a "clearSaved" method on UIData as follows:
    protected void clearSaved() {
        saved = new HashMap();
    }c) create a "clearDescendants" method on UIData that goes visits all of the UIData's descendants (i.e. facets and children, and their facets and children, recursively), and calls clearSaved on any UIData components that are found
    d) in the processDecodes method for UIData, replace:
    saved = new HashMap();with
    if (isOuterTable()) {
        clearSaved();
        clearDescendants();
    }2) When a commandButton in the inner dataTable is clicked, actions are fired for all rows of the outer dataTable. This is one case of a larger problem. The implementation of getClientId in UIComponentBase uses a cached value, if the ID has been computed previously. For components within dataTables, this is a problem because these components are referenced multiple times for different rows of the outer table, and the row number of the outer table is part of the client ID. To fix this, I suggest the following (maybe overkill, but it works):
    a) Create a "clearCachedValues" method on UIData, which visits all of the UIData's descendants, and sets their clientId to null. A hack to do this is:
    descendant.setId(descendant.getId())It would be better to have a method on UIComponent for this. NOTE: I have also found that if I come across a descendant that is a UIData, I also need to set that component's "model" attribute to null, because the calculation of this model refers to that dataTable's value valueBinding, which may be defined in terms of the current row of the outer table.
    b) Add a call to clearCachedValues to the end of the setRowIndex method on UIData.
    There may be other, better ways to fix these problems, but I thought it might be helpful to describe my fixes in detail, so that whoever is responsible for fixing the reference implementation can at least have the benefit of my research.
    I would like to see a bug opened for these problems, and I would like to be able to see the descriptions of known JSF bugs. Before JSF 1.1 came out I was worried that the nested dataTables bug (C026) description (which I was unable to find) might not be complete, and that as a result, the problems with nested dataTables would not be completely fixed in JSF 1.1. As it turned out my worries were not unfounded.

    JD> 2) When a commandButton in the inner dataTable is clicked, actions
    JD> are fired for all rows of the outer dataTable. This is one case of a
    JD> larger problem. The implementation of getClientId in UIComponentBase
    JD> uses a cached value, if the ID has been computed previously. For
    JD> components within dataTables, this is a problem because these
    JD> components are referenced multiple times for different rows of the
    JD> outer table, and the row number of the outer table is part of the
    JD> client ID. To fix this, I suggest the following (maybe overkill, but
    JD> it works):
    I've fixed part 1). I've essentially done as you suggested.
    I can't reproduce part 2). I've posted the webapp where I try to do
    this at
    http://blogs.sun.com/roller/resources/edburns/jsf-nested-datatables.war
    Please put the JSF 1.1 jars in common lib, or WEB-INF/lib in this war
    and then visit
    http://host:port/jsf-nested-datatables/faces/test2.jsp
    Click on the outer buttons, you'll see that the outer listener fires
    once.
    Click on the inner buttons, you'll see that the inner listener once.
    Can you please help me reproduce this?
    Ed

  • Design problem with dynamically added row in datatable

    Hello all,
    I have a dataTable and have developped a method that dynamically adds rows to the dataTable. Each row is made up of two form controls. The problem I have now is that I don't know how to retrieve the values from the mutiple rows. Ideally I would need the values to be stored into a list.
    Can anyone help?
    Thanks in advance,
    Julien.
    Here is my code:
    <h:dataTable var="line" binding="#{TradeClientsAndQuantitiesBean.clientsAndQuantities}"  value="#{TradeClientsAndQuantitiesBean.listOfMiddleFormHelpers}">
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="S�lectionnez un client"/>
                    </f:facet>
                    <h:selectOneMenu value="#{TradeClientsAndQuantitiesHelperBean.selectedClientTemp}">
                        <f:selectItems value="#{TradeClientsAndQuantitiesHelperBean.concatenatedLabelMap}"/>
                    </h:selectOneMenu>
                </h:column>   
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Renseignez une quantit�"/>
                    </f:facet>
                    <h:inputText value=""/>
                </h:column>   
            </h:dataTable>

    The values will just be put in the same row object you added to TradeClientsAndQuantitiesBean.listOfMiddleFormHelpers.
    It might be worth to read this article: http://balusc.xs4all.nl/srv/dev-jep-dat.html

  • Problem with commandButton in a custom DataTable

    I am trying to write a cutom DataTable and am having some trouble. I don't think that the DataTable that gets shipped has the flexibility that we need for our pages. That's why I'm trying to write my own.
    What I have is a commandButton in one of the column headers for the table. It is bound to a method in a backing bean. The page seems to render correctly. But when I click on the button, it seems to make a trip to the server, but the method doesn't get invoked.
    I figure that I'm missing something in my custom component, but I just can't figure it out. Does anyone have any ideas?
    If you would like for me to post some/all of the code just let me know. I didn't what might be helpful.
    Thanks,
    Ray

    Thank you for your response.
    I already had a messages tag on my page and no messages come out. I've looked in the log and don't see anything in their either. I put in a phaseListener and all of the phases are being processed.
    Here is my output. It is the same whether I press the button that is inside my custom dataTable or press a button that is outside my custom dataTable.
    beforePhase RESTORE_VIEW 1
    afterPhase RESTORE_VIEW 1
    beforePhase APPLY_REQUEST_VALUES 2
    afterPhase APPLY_REQUEST_VALUES 2
    beforePhase PROCESS_VALIDATIONS 3
    afterPhase PROCESS_VALIDATIONS 3
    beforePhase UPDATE_MODEL_VALUES 4
    afterPhase UPDATE_MODEL_VALUES 4
    beforePhase INVOKE_APPLICATION 5
    afterPhase INVOKE_APPLICATION 5
    beforePhase RENDER_RESPONSE 6
    afterPhase RENDER_RESPONSE 6
    The problem is, when I press the button that is inside my custom dataTable the method for the button doesn't get invoked. So I believe that I have something wrong in my custom dataTable that isn't building the component tree correctly. Does anyone have any ideas for this?
    Here is the class that renders my col tag. That tag puts out the <th> that the button is in.
    * Created on Dec 19, 2004
    package com.monsanto.ag_it.fieldops.aim.tblmaint.renderer;
    import java.io.IOException;
    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 encodeEnd(FacesContext context, UIComponent rptTableCol)
                   throws IOException {
              ResponseWriter writer = context.getResponseWriter();
              writer.endElement(tagType);
              writer.write("\r\n");
         public boolean getRendersChildren() {
              return true;
    }Thanks,
    Ray

  • Problem with column sort in myFaces dataTable

    Hello,
    In my dataTable I am trying to do a column sort on each column, When i click on the column header link nothing is happening. Could somebody please help. Please let me know if I am missing something.
    Here is the code.
    The jsf is as follows:
    <h:panelGrid columns="1" styleClass="tableHeaderAction">
    <t:dataTable id="fooS" value="#{supervisorsDto.tableRows}"
    var="tableRow" rows"30" styleClass="dataTable"
    headerClass="tableHeader" first="0"
    columnClasses="string,string,string,string"
    rowClasses="odd,even"
    sortAscending="#{supervisorsDto.ascending}"
    sortColumn="#{supervisorsDto.sort}"
    preserveSort="true" >
    <t:column>
    <f:facet name="header">
    <t:commandSortHeader columnName="lastName" arrow="false">
    <t:outputText value="#{screen.lastName}" />
    </t:commandSortHeader>
    </f:facet>
    <t:outputText value="#{tableRow.lastName}" />
    </t:column>
    <t:column>
    <f:facet name="header">
    <t:commandSortHeader columnName="firstName" arrow="false">
    <t:outputText value="#{screen.firstName}" />
    </t:commandSortHeader>
    </f:facet>
    <t:outputText value="#{tableRow.firstName}" />
    </t:column>
    <t:column>
    <f:facet name="header">
    <t:commandSortHeader columnName="loginName" arrow="false">
    <t:outputText value="#{screen.loginName}" />
    </t:commandSortHeader>
    </f:facet>
    <t:outputText value="#{tableRow.loginName}" />
    </t:column>
    <t:column>
    <f:facet name="header">
    <t:commandSortHeader columnName="team" arrow="false">
    <t:outputText value="#{screen.team}" />
    </t:commandSortHeader>
    </f:facet>
    <t:outputText value="#{tableRow.team}" />
    <h:inputHidden id="key" value="#{tableRow.empID}" />
    </t:column>
    </t:dataTable>
    </h:panelGrid>
    The sort method in SupervisorsDto is as follows:
    public class SupervisorsDto implements Serializable {
    private String sort="lastName";
    private boolean ascending= true;
    @SuppressWarnings("unchecked")
    public void sort(final String column,final boolean ascending)
    Comparator comparator = new Comparator()
    public int compare(Object o1, Object o2)
    Supervisors c1 = (Supervisors)o1;
    Supervisors c2 = (Supervisors)o2;
    if (column == null)
    return 0;
    if (column.equals("lastName"))
    return ascending ? c1.getLastName().compareTo(c2.getLastName()) : c2.getLastName().compareTo(c1.getLastName());
    else if (column.equals("firstName"))
    return ascending ? c1.getFirstName().compareTo(c2.getFirstName()) : c2.getFirstName().compareTo(c1.getFirstName());
    else if (column.equals("loginName"))
    return ascending ? c1.getLoginName().compareTo(c2.getLoginName()) : c2.getLoginName().compareTo(c1.getLoginName());
    else if (column.equals("team"))
    return ascending ? c1.getTeam().compareTo(c2.getTeam()) : c2.getTeam().compareTo(c1.getTeam());
    else return 0;
    Collections.sort(tableRows, comparator);
    public void sort(String sortColumn)
    if (sortColumn == null)
    throw new IllegalArgumentException("Argument sortColumn must not be null.");
    if (sort.equals(sortColumn))
    //current sort equals new sortColumn -> reverse sort order
    ascending = !ascending;
    else
    //sort new column in default direction
    sort = sortColumn;
    ascending = isDefaultAscending(sort);
    sort(sort, ascending);
    protected boolean isDefaultAscending(String sortColumn)
    return true;
    public String getSort() {
    return sort;
    public void setSort(String sort) {
    this.sort = sort;
    public boolean isAscending() {
    return ascending;
    public void setAscending(boolean ascending) {
    if(ascending != this.ascending)
    this.ascending = ascending;
    Thanks!

    I think I get really good at answering my own questions.
    It seems when you select the sort option on a column you must also set the "Sort Sequence".

  • Editing selcted checkboxes in JSF when using h:dataTable

    I have a few records coming in from the Database which are displayed with checkboxes . The JSP code for them is as follows
    <h:dataTable value="#{InvestigationDefendantView.investDefsFindingsModel}" var="def" border="0" >
    <h:column>
    <h:selectManyCheckbox value="#{InvestigationDefendantView.addtype1}" disabled="false">
    <f:selectItem itemValue="Current" itemLabel="Current"/>
    <f:selectItem itemValue="Mailing" itemLabel="Mailing"/>
    <f:selectItem itemValue="Posible" itemLabel="Posible"/>
    <j4j:idProxy id="DefAddTypeProxy"/>
    </h:selectManyCheckbox>
    </h:column>
    </h:dataTable>***********************************************8
    The View class has this get method
    ======================================
    public String[] getAddtype1()
    Logger.info(this, "addtype testing", this.faddType.size());
    if (this.faddType.size() > 0 )
    ArrayList<String> alcb = new ArrayList<String>();
    for (int i = 0; i < this.faddType.size(); i++)
    alcb.add(this.faddType.get(i));
    String[] tempArr = new String[alcb.size()];
    for (int i = 0; i < alcb.size(); i++)
    tempArr[i] = alcb.get(i).intern();
    return tempArr;
    return new String[0];
    }===========================================================
    Now when i edit , It shows all the checkBoxes for a perticuler type (e.g. current ) selected even if one of them was selected while adding the record since the h:datatable runs a loop for all the records in a row and my getaddtype1 shows gets called every time and the value faddType.size() is reset every time this method is called .
    What i want to do is show only those records checked which were selected while adding . please help me in solving the issue

    You need to bind the input values of each row to the row object behind the 'var' attribute of the h:dataTable.
    Also see this article how to use datatables: [http://balusc.blogspot.com/2006/06/using-datatables.html].

Maybe you are looking for

  • Where did my iPhoto go?

    Help, my iPhoto disappeared from my dock.  How do I find the applications folder to find out if it is still there?

  • ITunes store is all blank boxes and blue text. How do I fix that?

    I downloaded the latest version of iTunes and when I tried to access the iTunes store, 1) it takes FOREVER to come up, 2) it doesn't come up most of the time and is a blank white screen instead 3) when it does come up, it is a bunch of blank white bo

  • Sleep function in oracle

    is there any function to stop the procedure for 0.01 secs?? i want that precision. thank you, regards, chintan

  • Client call using   XML over Http using HttpClient

    Using HTTPClient while calling HTTPPost method to generate request for external system using XML over http using below code client.getState().setCredentials(new AuthScope(ipAddress,portNumber),new UsernamePasswordCredentials(username, password));    

  • Single Click Function Freeze

    Hi Using Mavericks has been fun so for except for this click "glitch" While using trackpad or an external mouse I'm unable to click on anything expecially buttons like Back in browser or next song in iTunes and stuff like that. I have to click somewh