You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by me...@husbanken.no on 2005/11/15 09:59:14 UTC

Values in some inputfields in datatable disappears

Hi,

I have run into a problem with datatables in my application. Values 
entered in some of my input fields in a datatable is disappering when the 
page is submitted.
The application is using Suns RI together with tomahawk, and is running on 
JBoss.

My application consists of a backingBean (TestBean), a jsp-page and a 
value object. 
The jsp-page has a datatable with three inputfields, and a submit button. 

This is my problem:
If I enter values in all of my three input fields, and hit the submit 
button, only the value in the first of my three inputfields is redisplayed 
after the submit. The values in the other input fields disappears. 

This seems like a bug to me, has anyone else experienced this behaviour? 
Is there a known workaround or solution to this problem?

If I use sun's datatable all of the values are redisplayed as I expect 
them to. 

The code is pasted below.


Regards,
Mette

--------------------------------------------------------

****** Backing Bean ********

import java.util.ArrayList;
import java.util.List;
import javax.faces.event.ActionEvent;
import org.apache.myfaces.component.html.ext.HtmlDataTable;

public class TestBean {

    private HtmlDataTable myTable; 
    private List myValues;
 
    public TestBean() {
        if(myTable == null) {
            myTable = new HtmlDataTable();
            if(myValues == null) {
                myValues = new ArrayList();
            }
            myValues.add(new TestObj());
            myValues.add(new TestObj());
            myValues.add(new TestObj());
            myTable.setValue(myValues);
        }
    }
 
    public void myActionListener(ActionEvent e) {
    }

    public HtmlDataTable getMyTable() {
        return myTable;
    }
    public void setMyTable(HtmlDataTable myTable) {
        this.myTable = myTable;
    }
}


*****  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://myfaces.apache.org/tomahawk" prefix="t"%>

<%
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%>">
        <title>My JSF starting page</title>
</head>
<body>
<f:view>
        <h:form> 
        <t:dataTable binding="#{testBean.myTable}" var="testVar">
                <t:column>
                        <t:inputText value="#{testVar.value}"></t:inputText>
                </t:column>
        </t:dataTable>
        <t:commandButton value="Button" actionListener="#{testBean.myActionListener}" />
        </h:form>
</f:view>
</body>
</html>


**** value object ******

public class TestObj {
    private String value;

    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
}