hi, that's a given behaviour. generally spoken: you don't know how often a component invokes your getter methods. you will find a lot of possible solutions. e.g. there is a myfaces sub-project which provides a solution (the view-controller provided by orchestra [1]).
(or you use javax.faces.event.PreRenderViewEvent of jsf 2.0) regards, gerhard [1] http://myfaces.apache.org/orchestra/myfaces-orchestra-core15/ViewControllerAnnotations.html http://www.irian.at Your JSF powerhouse - JSF Consulting, Development and Courses in English and German Professional Support for Apache MyFaces 2009/8/26 Fırat KÜÇÜK <[email protected]> > Hi, > > Here is the test codes: > > This is my simple managed bean: > > ---------------------------------- > public class Sample { > > public String getText() { > System.out.println("this is text"); > return "this is text"; > } > > public String[] getData() { > System.out.println("this is data"); > return new String[] { > "deneme1", > "deneme2" > }; > } > > public String SampleAction() { > return "sample"; > } > } > ---------------------------------- > > This is web page: > > ---------------------------------- > <%...@page contentType="text/html" pageEncoding="UTF-8"%> > > <%...@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> > <%...@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > "http://www.w3.org/TR/html4/loose.dtd"> > > <html> > <head> > <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> > <title>JSP Page</title> > </head> > <body> > <h:dataTable var="d" border="1" value="#{sample.data}"> > <h:column> > <h:outputText value="#{d}" /> > </h:column> > </h:dataTable> > <h:form> > <h:outputText value="#{sample.text}" /> > <h:commandButton action="#{sample.SampleAction}" value="click" /> > </h:form> > </body> > </html> > ---------------------------------- > > and this is faces config: > > ---------------------------------- > <navigation-rule> > <navigation-case> > <from-outcome>sample</from-outcome> > <to-view-id>sample.jsf</to-view-id> > </navigation-case> > </navigation-rule> > > <managed-bean> > <managed-bean-name>sample</managed-bean-name> > <managed-bean-class>Sample</managed-bean-class> > <managed-bean-scope>request</managed-bean-scope> > </managed-bean> > ---------------------------------- > > When we call http://localhost:8080/index.jsf. The server output is: > this is text > this is data > > Another word JSF calls datatable #{sample.data} and #{sample.text}.this > normal. > > But when we click the button. The Server output is: > this is data > > getData method should not be called. > > is this a possible bug? How may i avoid of reloading datatable content. > > all of jsf and jstl tags that i used. Works properly except datatable. When > i click button and post data. > Datatable uses getter method. No other tags use getter methods. This is an > exception. > > -- > FIRAT KÜÇÜK >

