JSF Datatable inside a datatable problems

Hi,
i am having a datatable with 3 rows mapping to a column in the database table..now i have another datatable inside the previous datatable mapping to another column in the database.... i am able to fetch the values from the database and populate in the 2 datatables.my first datatable has one column and it is a component label.my second datatable has 4 columns..a select many checkboxes,a component label,and 2 text fields.
Now the problem comes when i need to save the values that are being entered in the datatable..how do i get the values of the checkbox and the textfields and update in the database.and remember i need to get the values of all the components in both the datatables and update in the database...my JSP code and the backing bean codes are as follows.......pls help me with this problem
JSP Code:
<h:dataTable binding="#{AttributeSelection.uiTable2}" id="dataTable2" rowClasses="form"
value="#{AttributeSelection.arrayDataModel}" var="currentRow1">
<h:column binding="#{AttributeSelection.column5}" id="column5">
<h:outputText binding="#{AttributeSelection.outputText1}" id="outputText1" value=""/>
<f:facet name="header"/>
<h:dataTable binding="#{AttributeSelection.uiTable1}" border="1" headerClass="form_bold"
id="dataTable1" rowClasses="form" value="#{currentRow1['attributes']}" var="currentRow">
<h:column binding="#{AttributeSelection.column1}" id="column1">
<h:selectBooleanCheckbox binding="#{AttributeSelection.checkbox1}" id="checkbox1" value="#{currentRow.checkbox1}"/>
<f:facet name="header"/>
</h:column>
<h:column binding="#{AttributeSelection.column2}" id="column2">
<h:outputText binding="#{AttributeSelection.outputText3}" id="outputText3" value="#{currentRow['name']}"/>
<f:facet name="header">
<h:outputText binding="#{AttributeSelection.outputText4}" id="outputText4"
style="height: 23px; width: 50%" styleClass="form_bold" value="#{currentRow1['category']}"/>
</f:facet>
</h:column>
<h:column binding="#{AttributeSelection.column3}" id="column3">
<h:inputText binding="#{AttributeSelection.textField1}" id="textField1"
style="height: 24px; width: 65%" styleClass="input" value="#{currentRow['defaultMin']}"/>
<f:facet name="header">
<h:outputText binding="#{AttributeSelection.outputText8}" id="outputText8" value="Min"/>
</f:facet>
</h:column>
<h:column binding="#{AttributeSelection.column4}" id="column4">
<h:inputText binding="#{AttributeSelection.textField2}" id="textField2"
style="height: 24px; width: 65%" styleClass="input" value="#{currentRow['defaultMax']}"/>
<f:facet name="header">
<h:outputText binding="#{AttributeSelection.outputText9}" id="outputText9" style="" value="Max"/>
</f:facet>
</h:column>
</h:dataTable>
</h:column>
</h:dataTable>
Backing Bean Code:
* AttributeSelection1.java
* Created on January 23, 2006, 10:46 AM
* Copyright Sidharth_Mohan
package tpalt;
import com.equifax.ems.tpalt.order.dao.OrderDataDAO;
import javax.faces.*;
import com.sun.jsfcl.app.*;
import javax.faces.component.html.*;
import com.sun.jsfcl.data.*;
import java.util.ArrayList;
import javax.faces.component.*;
import javax.faces.model.ArrayDataModel;
import com.equifax.ems.tpalt.order.model.OrderAttribute;
import com.equifax.ems.tpalt.order.model.OrderCategory;
import com.sun.faces.el.MethodBindingImpl;
import java.util.Iterator;
import java.util.Map;
import javax.faces.application.Application;
import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
public class AttributeSelection extends AbstractPageBean {
* Bean initialization.
// </editor-fold>
public AttributeSelection() {
// <editor-fold defaultstate="collapsed" desc="Creator-managed Component Initialization">
try {
} catch (Exception e) {
log("AttributeSelection Initialization Failure", e);
throw e instanceof javax.faces.FacesException ? (FacesException) e : new FacesException(e);
// </editor-fold>
// Additional user provided initialization code
protected tpalt.ApplicationBean1 getApplicationBean1() {
return (tpalt.ApplicationBean1)getBean("ApplicationBean1");
protected tpalt.SessionBean1 getSessionBean1() {
return (tpalt.SessionBean1)getBean("SessionBean1");
// </editor-fold>
* Bean cleanup.
protected void afterRenderResponse() {
}private int __placeholder;
private HtmlForm form1 = new HtmlForm();
public HtmlForm getForm1() {
return form1;
public void setForm1(HtmlForm hf) {
this.form1 = hf;
public UIData uiTable1 = new UIData();
* Getter for property uiTable.
* @return Value of property uiTable.
public UIData getUiTable1() {
return uiTable1;
* Setter for property uiTable.
* @param uiTable New value of property uiTable.
public void setUiTable1(UIData uiTable1) {
this.uiTable1 = uiTable1;
private UIColumn column1 = new UIColumn();
public UIColumn getColumn1() {
return column1;
public void setColumn1(UIColumn uic) {
this.column1 = uic;
private UIColumn column5 = new UIColumn();
public UIColumn getColumn5() {
return column5;
public void setColumn5(UIColumn uic) {
this.column5 = uic;
private HtmlOutputText outputText1 = new HtmlOutputText();
public HtmlOutputText getOutputText1() {
return outputText1;
public void setOutputText1(HtmlOutputText hot) {
this.outputText1 = hot;
public UIData uiTable2 = new UIData();
* Getter for property uiTable.
* @return Value of property uiTable.
public UIData getUiTable2() {
return uiTable2;
* Setter for property uiTable.
* @param uiTable New value of property uiTable.
public void setUiTable2(UIData uiTable2) {
this.uiTable2 = uiTable2;
private ArrayDataModel arrayDataModel = new ArrayDataModel();
public ArrayDataModel getArrayDataModel() {
ArrayList orderList =new ArrayList();
OrderDataDAO orderData =new OrderDataDAO();
ArrayList orderCategories = new ArrayList();
try
orderList = (ArrayList) orderData.getAllAttributes();
for (int i =0;i<orderList.size();i++)
OrderAttribute or =(OrderAttribute)orderList.get(i);
//or.setCheckbox1(true);
String category = (String)or.getCategory();
OrderCategory orderCategory = new OrderCategory();
ArrayList attributesforCategory = new ArrayList();
for (int j = i;j<orderList.size();j++){
OrderAttribute ora =(OrderAttribute)orderList.get(j);
if (category.equals(ora.getCategory())){
attributesforCategory.add(ora);
orderList.remove(j);
j = i;
orderCategory.setCategory(category);
orderCategory.setAttributes(attributesforCategory);
orderCategories.add(orderCategory);
//dataTable2Model.setWrappedData(orderCategories);
arrayDataModel = new ArrayDataModel(orderCategories.toArray());
catch (Exception ex) {
return arrayDataModel;
public void setArrayDataModel(ArrayDataModel dtdm) {
this.arrayDataModel = dtdm;
private UIColumn column2 = new UIColumn();
public UIColumn getColumn2() {
return column2;
public void setColumn2(UIColumn uic) {
this.column2 = uic;
private HtmlOutputText outputText3 = new HtmlOutputText();
public HtmlOutputText getOutputText3() {
return outputText3;
public void setOutputText3(HtmlOutputText hot) {
this.outputText3 = hot;
private UIColumn column3 = new UIColumn();
public UIColumn getColumn3() {
return column3;
public void setColumn3(UIColumn uic) {
this.column3 = uic;
private HtmlOutputText outputText4 = new HtmlOutputText();
public HtmlOutputText getOutputText4() {
return outputText4;
public void setOutputText4(HtmlOutputText hot) {
this.outputText4 = hot;
private UIColumn column4 = new UIColumn();
public UIColumn getColumn4() {
return column4;
public void setColumn4(UIColumn uic) {
this.column4 = uic;
private HtmlOutputText outputText8 = new HtmlOutputText();
public HtmlOutputText getOutputText8() {
return outputText8;
public void setOutputText8(HtmlOutputText hot) {
this.outputText8 = hot;
private HtmlOutputText outputText9 = new HtmlOutputText();
public HtmlOutputText getOutputText9() {
return outputText9;
public void setOutputText9(HtmlOutputText hot) {
this.outputText9 = hot;
public UIInput textField1 = new UIInput();
public UIInput getTextField1() {
return textField1;
public void setTextField1(UIInput hit) {
this.textField1 = hit;
public UIInput textField2 = new UIInput();
public UIInput getTextField2() {
return textField2;
public void setTextField2(UIInput hit) {
this.textField2 = hit;
public UISelectBoolean checkbox1 = new UISelectBoolean();
public UISelectBoolean getCheckbox1() {
return checkbox1;
public void setCheckbox1(UISelectBoolean hsbc) {
this.checkbox1 = hsbc;
public String save_action() {
try{
java.lang.System.out.println("<<<<<<<<<<<<<<<Button Came<<<<<<<<<<<<<<<<<<>>>>>>>");
java.lang.System.out.println("====================Welcome to the Button action======================");
int firstIndex = uiTable2.getFirst();
int rows = uiTable2.getRowCount();
java.lang.System.out.println("----------------------FIRST INDEX-----------------------"+firstIndex);
java.lang.System.out.println("----------------------ROWS-----------------------"+rows);
ArrayList orderAttribs = orderCat.getAttributes();
Iterator it = orderAttribs.iterator();
while(it.hasNext())
OrderAttribute currentAttribute = (OrderAttribute) it.next();
java.lang.System.out.println("==================String Value===================" + currentAttribute.getCheckbox1());
java.lang.System.out.println("==================String Value===================" + currentAttribute.getName());
java.lang.System.out.println("==================String Value===================" + currentAttribute.getDefaultMin());
java.lang.System.out.println("==================String Value===================" + currentAttribute.getDefaultMax());
catch (Exception e) {
e.printStackTrace();
return "Test";
private HtmlCommandButton save = new HtmlCommandButton();
public HtmlCommandButton getSave() {
return save;
public void setSave(HtmlCommandButton hcb) {
this.save = hcb;
Please Reply me with this solution soon.............
Thanx,
Sidharth
}

you may get some help in the following...
http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/inserts_updates_deletes.html
-Regards,
Aniruddha

Similar Messages

  • JSF dataTables - Problem during retrieving data from bean

    Hi, Below is the Stack Trace got on displaying data using JSF datatables.
         This error occurs somtimes and is not very frequent.We are using jboss seam, jboss-4.0.5.GA server and Hibernate.
         Anyone knows about this problem and how it can be resolved?
         Thanks in advance
         javax.faces.el.EvaluationException: Cannot get value for expression '#{loc.companyName}'
              at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:402)
              at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:1075)
              at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:508)
              at org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:433)
              at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:216)
              at org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:98)
              at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536)
              at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:495)
              at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:363)
              at org.apache.myfaces.shared_impl.taglib.UIComponentBodyTagBase.doEndTag(UIComponentBodyTagBase.java:54)
              at org.apache.jsp.menu_jsp._jspx_meth_h_panelGrid_0(menu_jsp.java:225)
              at org.apache.jsp.menu_jsp._jspx_meth_f_subview_0(menu_jsp.java:118)
              at org.apache.jsp.menu_jsp._jspService(menu_jsp.java:87)
              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:334)
              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.doInclude(ApplicationDispatcher.java:574)
              at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
              at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
              at org.apache.jsp.finish_005fregistration_jsp._jspx_meth_h_form_0(finish_005fregistration_jsp.java:263)
              at org.apache.jsp.finish_005fregistration_jsp._jspx_meth_f_view_0(finish_005fregistration_jsp.java:139)
              at org.apache.jsp.finish_005fregistration_jsp._jspService(finish_005fregistration_jsp.java:93)
              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:334)
              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:416)
              at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234)
              at org.jboss.seam.jsf.SeamViewHandler.renderView(SeamViewHandler.java:59)
              at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
              at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
              at com.kmedia.filter.RequestFilter.doFilter(RequestFilter.java:184)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
              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.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
              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.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
              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:869)
              at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
              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: java.lang.NullPointerException
              at org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassLoader.java:620)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
              at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:464)
              at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:405)
              at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
              at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
              at org.jboss.seam.jsf.SeamApplication11.getPropertyResolver(SeamApplication11.java:197)
              at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:532)
              at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
              at org.apache.commons.el.BinaryOperatorExpression.evaluate(BinaryOperatorExpression.java:154)
              at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
              ... 70 more
         10:23:55 Servlet.service() for servlet jsp threw exception
         Also check the JSF page, Backing bean, and VO
         JSF page
         <h:dataTable value="#{finishedRegistrationBean.list}" var = "loc" >
                        <h:column>
         <f:facet name="header">
                        <h:outputText value="#{displaymessages.registrationDate}" />
                        </f:facet>
                        <span class="bodylighttext"> <h:outputText value="#{loc.registrDate}" /> </span>
                                                                                                   </h:column>
                        <h:column>
                        <f:facet name="header">
                        <h:outputText value="#{displaymessages.companyName}" />
                        </f:facet>
                        <span class="bodylighttext"> <h:outputText
                        value="#{loc.companyName}" /> </span>
                        </h:column>
                        <h:column>
                        <f:facet name="header">
                             <h:outputText value="#{displaymessages.Address}" />
                             </f:facet>
                        <span class="bodylighttext"> <h:outputText
                        value="#{loc.address}" /> </span>
                        </h:column>
                        <h:column>
                        <f:facet name="header">
                        <h:outputText value="#{displaymessages.Action}" />
                        </f:facet>
                        <h:commandLink target="_blank"
                        action="#{finishedRegistrationBean.viewFinishedRegistrationPage(loc)}">
                        <h:graphicImage value="images/view_icon.gif"
                        alt="#{displaymessages.info_tooltip_view}"
                        width="17" height="17" style="border:0" />
                        </h:commandLink>
                        </h:column>
    </h:dataTable>
    Backing bean
                        @Name("finishedRegistrationBean")
                        public class FinishedRegistrationBean {
                             @In
                             private User user;
                             @In
                             private FacesMessages facesMessages;
                             private List<FinishedRegistrationVO> list;
                             public FinishedRegistrationBean() throws KMException {
                                  filterFinishedRegistration();
                             public void filterFinishedRegistration() throws KMException
                             list = new ArrayList<FinishedRegistrationVO>();
                             finished_list = userDAO.searchFinishedRegistrationDetails(country_code,uniqueID, companyName, user.getUserName());
                             public void setList(List<FinishedRegistrationVO> list) {
                                  this.list = list;
                             public List<FinishedRegistrationVO> getList() {
                             return list;
    FinishedRegistrationVO
         public class FinishedRegistrationVO {
              private String uniqId;
              private String companyName;
              private Date registrDate;
              private String address;
              public String getCompanyName() {
                   return companyName;
              public void setCompanyName(String companyName) {
                   this.companyName = companyName;
              public String getAddress() {
                   return address;
              public void setAddress(String address) {
                   this.address = address;
              public String getUniqId() {
                   return uniqId;
              public void setUniqId(String uniqId) {
                   this.uniqId = uniqId;
              public Date getRegistrDate() {
                   return registrDate;
              public void setRegistrDate(Date registrDate) {
                   this.registrDate = registrDate;
         }

    Could you please post your
    -HBM
    -faces-config.xml

  • H:message inside a JSF Datatable

    Is it possible to put an < h:message> inside of a column of a JSF Datatable? I want to validate that the user is actually entering data into the text box residing in the column of the Datatable.

    Yes, you could, please download jsf1.1 RI and install the jsf-components smaple and then refer this page:
    http://localhost:8080/jsf-components/repeater.faces

  • 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

  • EL Expression in a JSF Datatable

    I have a JSF Datatable that returns a list of results. These results contain a short version of what I actually want to display. For example, "DOC" which stands for "Document". Is there a way that I can create an EL expression inside the Datatable to print out the full name instead of the shortened name?

    jmsjr wrote:
    gimbal2 wrote:
    IMO this requirement, if it is possible to implement, is only going to lead to a hard to maintain application. But I guess that's something you have to experience before you believe it.
    You can't use EL directly in a resource bundle out of the box, but it is possible to parametrize them anyway, did you know that? Perhaps that is already good enough for you.
    http://murygin.wordpress.com/2010/04/23/parameter-substitution-in-resource-bundles/
    http://stackoverflow.com/questions/5697189/pass-parameters-to-messages-from-resource-bundle-to-components-other-than-hou
    Yes, I am aware of parameterising the resource bundles. However, these require you to use f:param .. and the last time I tried, these parameters were not available / visible at the requiredMessage attribute. I'll try it again anyway.As I have re-discovered, you cannot parameterise the requiredMessage attribute.
    http://stackoverflow.com/questions/9280915/how-to-parameterize-requiredmessage-attribute-in-composite-component
    The other alternative I am looking at, for the cases where the requiredMessage needs to be parameterised, or needs to have dynamic content, is to call a backing method for the requiredMessage attribute, from which I can then do whatever I need, even use EL expressions. I was thinking of this as a last resort.
    On the other hand, when one uses the validator attribute, usually one ends up adding one or multiple FacesMessage in code within the method being called, where the string of the message already comes from a resource bundle. I was trying to have a delineation whereby:
    1) requiredMessage should only use resource bundles, no backing bean method called.
    2) FacesMessages added via the method called by the validator attribute is OK

  • Question about jdbc and jsf datatable

    hello
    I was wondering whether it was a correct way :
    -retrieving data with resultset and putting them to an arraylist, then getting to jsf datatable.
    or
    Is there any better way I can speed up retrieving data from databse ?
    regards

    orkun wrote:
    I was wondering whether it was a correct way :
    -retrieving data with resultset and putting them to an arraylist, then getting to jsf datatable.Your question/problem statement is unclear, but just lookup the DAO pattern.
    Is there any better way I can speed up retrieving data from databse ?Performance is a matter of good code and datamodel and decent hardware.

  • JSF Datatable row data - Expand/Collapse

    Hi,
    I just started learning the JSF concepts. I read articles by BalusC which are very clear and easily understandable. Thanks to BalusC.
    I have a requirement to implement expand and collapse data using JSF datatable. The data comes from the backing bean is in the form of java.util.List which contains StudentInfo. I will have to display following data from the list.
    *{color:#0000ff}name {color}(this is to be displayed a link), firstname, lastname, dob*
    I am able to display the data in a nice formatted table using h:datatable. My main hurdle is to display an expanded info when the name link is clicked. The expanded info should be displayed below the row spanning all columns. The additional info being the comments, instructions whic are the part of the row data. Here is the code describing the StudentInfo.
    Appreciate if someone help me with suggestions. Very helpful if any sample code is avaialble.
    Regards,
    Smitha
    public class StudentInfo {
    //Following fields to be shown in row data
    private String name;
    private String firstname;
    private String lastname;
    private String dob;
    //Following fields to be shown in expanded form
    private String comments;
    private String instructions;
    public String getName() {
    return name;
    public void setName(String name) {
    this.name = name;
    public String getFirstname() {
    return firstname;
    public void setFirstname(String firstname) {
    this.firstname = firstname;
    public String getLastname() {
    return lastname;
    public void setLastname(String lastname) {
    this.lastname = lastname;
    public String getDob() {
    return dob;
    public void setDob(String dob) {
    this.dob = dob;
    public String getComments() {
    return comments;
    public void setComments(String comments) {
    this.comments = comments;
    public String getInstructions() {
    return instructions;
    public void setInstructions(String instructions) {
    this.instructions = instructions;
    }

    That's not possible with plain h:dataTable.
    Consider Tomahawk t:dataList where in you can specify rows and colspans yourself using plain HTML. Show/hide rows should be easy with JavaScript.

  • Jsf datatable component + java.sql.SQLException

    I get the following error when implementing a JSF DataTable component using
    JDeveloper 10.1.3.1.
    javax.faces.FacesException: java.sql.SQLException: Io exception: Socket closed
    I am able to follow the article in this link:
    http://www.oracle.com/technology/oramag/oracle/06-jan/o16jsf.html
    I can get the table generated, but it occurred to me that the example in this article does not include logic to close the statement, resultset, and connection. Sure enough, I jumped out to the database and there were numerous inactive connections hanging around from my application.
    I added the following code before the return null statement from the article:
    finally {
    try {
    rs.close();
    stmt.close();
    c.close();
    catch (Exception e) {
    System.out.println("after close");
    So I need to know the proper procedure to closing the resultset, statement, and connection using a jsf datatable component.

    You need to make sure you're using the Oracle9i JDBC driver, or using the Oracle 8.1.7.2 JDBC driver as I mentioned above.
    If you are using JDeveloper9i release 9.0.2 or 9.0.3, the driver you need is in <jdevhome>\jdbc\lib
    Otherwise, you can also download the drivers from OTN.

  • Sorting a JSF dataTable

    Hi all,
    How can the contents of JSF dataTable component be sorted (any column). I need solution in JSF.
    can any one show an example or code snippet.
    I have this code of dataTable and I want to sort it by Date Created.
    How I can associate my code of sort with this column.
    <h:dataTable value="#{viewCampaignPageBean.allCampaigns}" var="campaign"
    border="1" width="60%" cellpadding = "4" styleClass= "sample" headerClass="th"
    >
    <h:column>
    <f:facet name="header">
    <f:verbatim>Title</f:verbatim>
    </f:facet>
    <h:outputText value="#{campaign.title}" styleClass="tLabel" />
    </h:column>
    <h:column>
    <f:facet name="header">
    <f:verbatim>Type</f:verbatim>
    </f:facet>
    <h:outputText value="#{campaign.campaignType}" styleClass="tLabel" />
    </h:column>
    <h:column>
    <f:facet name="header">
    <f:verbatim>Date Created</f:verbatim>
    </f:facet>
    <h:outputText value="#{campaign.createDate}" styleClass="tLabel" />
    </h:column>
    </h:dataTable>Thanks in advance

    Check <a href="http://balusc.xs4all.nl/srv/dev-jep-dat.html"></a> � <a href="http://balusc.xs4all.nl/srv/dev-jep-dat.html#SortingDatatable"></a>.

  • How to dynamically create a JSF dataTable from a String[][] array

    Hi, I�m developing an application that uses columns, rows and data instead of any other attributes, so I got from a database Resultset a String[] array with the rows headers, other String[] array with the columns headers, and a String[][] array with the information between every row[] and column[] header al this String arrays depend on a method that receives the group title as a parameter so they are dynamically created, anyway I can display this information in a jsp page but I don�t know how to display this information in a JSF dataTable.
    Does anybody knows how I could do this? and which is the proper way to create a dynamically rows and columns dataTable?

    Hi, I�m developing an application that uses columns, rows and data instead of any other attributes, so I got from a database Resultset a String[] array with the rows headers, other String[] array with the columns headers, and a String[][] array with the information between every row[] and column[] header al this String arrays depend on a method that receives the group title as a parameter so they are dynamically created, anyway I can display this information in a jsp page but I don�t know how to display this information in a JSF dataTable.
    Does anybody knows how I could do this? and which is the proper way to create a dynamically rows and columns dataTable?

  • Selecting multiple rows from jsf datatable

    Hi
    i am working on jsf,ejb3.0 .my requirement is to select the multiple rows usng checkboxes from jsf datatable. i am workng on this for last two days. early response is appreciated.please hel me.
    Thanks
    KRamu

    Hi!
    You could enhance your collection item with a boolean. On your interface you then insert a checkbox column that you bind to the boolean property. on any given action you can go thru your collection and check which item has been selected. In case of doubt go to [http://balusc.blogspot.com/] -i'm sure you'll find some samples/tuts there.

  • How to display a JSF page inside center part of panel of another page?

    How can I display a second JSF page inside my center part of Stretch layout in my First page on click of a commandImageLink of First JSF page? Can anyone help me in this with some example?

    Here is a tutorial that will introduce you to the concepts of taskflows, page fragments and regions - http://www.oracle.com/technology/obe/obe11jdev/ps1/boundedtaskflow/bounded_task_flow.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.

  • 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

  • JSF dataTable dynamic columns Problem

    Hello everybody,
    I'm trying to display a table with a dynamic number of columns. I found only 1 topic on the matter and tried it out.
    The JSP Page has this tag:
    <h:dataTable      binding="#{ViewBean.dataTable}"
         value=     "#{ViewBean.tableRows}"
         var=     "#{row}" />
    My "viewBean" contains the following code:
    In constructor:
    dataTable = new UIData();
    //This one contains a simple list of 10 integers so that 10 rows are rendered, just for testing.
    public ArrayList getTableRows ()
         ArrayList lst = new ArrayList();
         for (int n=0; n<10; n++) {
         lst.add(new Integer(n));
         return lst;
    //Now my databinding thingy:
    public UIData getDataTable()
    UIColumn col;
    UIOutput out = null;
    Application app = app = FacesContext.getCurrentInstance().getApplication();
    int colCount = 3;
         for(int j = 0; j < colCount; ++j) {
    out = new UIOutput();
    col = new UIColumn();
    ValueBinding vb = app.createValueBinding("#{" + j + "}"); //just a simple expression with nothing difficult in it.
    out.setValueBinding("value", vb);
    out.setRendererType("Text");
    col.getChildren().add(out);
    dataTable.getChildren().add(col);
         return dataTable;
    Now the error I get:
    [com.sun.faces.el.ValueBindingImpl] getValue(ref=ViewBean.tableRows)
    [com.sun.faces.el.VariableResolverImpl] resolveVariable: Resolved variable:biz.mbisoftware.ep.view.ListView@ee0373
    [com.sun.faces.el.ValueBindingImpl] getValue Result:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    [com.sun.faces.el.ValueBindingImpl] -->Returning [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    [com.sun.faces.renderkit.html_basic.HtmlBasicRenderer] Begin encoding component _id2
    [com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer] component.getValue() returned Name
    [com.sun.faces.renderkit.html_basic.HtmlBasicRenderer] Value to be rendered Name
    [com.sun.faces.renderkit.html_basic.ButtonRenderer] Begin encoding children _id0
    [com.sun.faces.renderkit.html_basic.HtmlBasicRenderer] Begin encoding component _id3
    [com.sun.faces.el.ValueBindingImpl] getValue(ref=1)
    [com.sun.faces.el.ValueBindingImpl] getValue Result:1
    [com.sun.faces.el.ValueBindingImpl] -->Returning 1
    [com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer] component.getValue() returned 1
    [com.sun.faces.application.ApplicationImpl] Created converter of type javax.faces.convert.LongConverter
    [com.sun.faces.renderkit.html_basic.HtmlBasicRenderer] Value to be rendered 1
    [com.sun.faces.taglib.html_basic.DataTableTag] id: null class: com.sun.faces.taglib.html_basic.DataTableTag
    java.lang.NullPointerException
    ...long traceback...
    Anyone has an idea what happened, or why it's not working? I have no clue.
    Thx for your time.
    Bjoern

    Hello derBjoern,
    First off, it's not valid to have an expression in the value of the var
    attribute. "var" should just be a String.
    Secondly, there are some typos in your sample, perhaps these were
    introduced during posting to the forum, but I had to remove them to get
    it to run for me.
    * "app = app ="
    * There is no "Text" renderer type in the standard RenderKit. The
    proper name is "javax.faces.Text". (The error message is terrible
    here).
    Once I did that. It worked using the latest build from java.net.
    Here is the revised getDataTable() method.
    public UIData getDataTable()
         UIColumn col;
         UIOutput out = null;
         Application app = FacesContext.getCurrentInstance().getApplication();
         int colCount = 3;
         for(int j = 0; j < colCount; ++j) {
         out = new UIOutput();
         col = new UIColumn();
         ValueBinding vb = app.createValueBinding("#{" + j + "}"); //just a simple expression with nothing difficult in it.
         out.setValueBinding("value", vb);
         out.setRendererType("javax.faces.Text");
         col.getChildren().add(out);
         dataTable.getChildren().add(col);
         return dataTable;
    The output I received was:
    0      1      2
    0      1      2
    0      1      2
    0      1      2
    0      1      2
    0      1      2
    0      1      2
    0      1      2
    0      1      2
    0      1      2
    Ed (JSR-252 Spec co-lead)

Maybe you are looking for

  • Time out error in deploying the process on weblogic server

    Hi, While deploying the BPEL process in Weblogic 10.3.4, following Exception comes on soa server console. I am sure this is not related to my application, but due to this I am not able to deploy the process on server, it lead with connection time out

  • How to setup the clock to the second.

    How to setup the clock to the second. I'm able to setup hours and minutes correctly but not the seconds precisely. Can I synchronize with an atomic clock?

  • Why is 1 album split up in itunes?

    i have an album with 11 tracks and it shows up as 6 seperate albums in itunes? i have checked the info and it looks the same for the album name.

  • HDV Channel 3 mic...?

    I am editing using FCP Studio 2. Recently a bunch of footage has been recorded for me as the editor on the Cannon XLH1 Camera. The footage is HDV and recorded on mini dv tapes. A mic was used that was connected to the 3rd channel for audio. I have be

  • Adding logos to footage - Title ? or direct to timeline ?

    Good morning gentlemen, I've got a good topic for discussion this morning. I've got 2 logos which I wish to add to a series of videos. I'm debating on what is proper technique here. - Do I create a new Title and add both logos (.png) to the title, an