After some experiments I realized that:

1) If I start the Test page from the browser with 
localhost:8080/application/Test.seam and I refresh the page a new conversation 
is started. This is true if and only if I have a call to the TestBeam (ex 
<h:outputText value="#{TestManager.property}"></h:outputText> or the dataTable)
If I have not a call to the TestBean the conversation is not even started.

Let me say that if I start the Test page directly from the browser the page 
itself is 'detached' from the conversation, or in other words, the page can 
starts a conversation but it is not able to be attached to it.

2) If I start the Test page from a different page (StartTest, which does not 
start any conversation) and I start the TestPage calling the startPage method, 
I am able to refresh the page as much I like without new conversation starts. 
This is true even if I have <page view-id="/Test.jsp" 
action="#{TestManager.onListLoad}" />  in the pages.xml. Obviously the table is 
refreshed (it was my original problem !!).

Let me say that in this case the Test page is 'attached' to its conversation. 
There is a clue of the 'attachement': the URL in the browser is: 
localhost:8080/application/Test.seam?conversationId=number

3) Removing @Begin(join=true) from the findAll method no conversation at all is 
started (!!! ???)

4) The behaviour is the same if I put the bean either into the SESSION or into 
the CONVERSATION

Now, question is: How can  I make the Test page knows that it is attached to a 
conversation (or better that I will be attached to a conversation) when I start 
it directly from the browser ?

Comments and help are welcome.

Fabrizio



Test page

  | <f:view>
  |     <f:loadBundle basename="messages" var="msgs" />
  |     <h:form>
  |             <br>
  |             <t:dataTable id="cd" var="cd" preserveDataModel="false" 
value="#{cdList}" width="100%" ....>
  | 
  |                     <h:column>
  |                             <f:facet name="header">
  |                                     <h:outputText value="titolo" />
  |                             </f:facet>
  |                             <h:outputText value="#{cd.titolo}" />
  |                     </h:column>
  |             </t:dataTable>
  | 
  |             <br>
  |             <hr>
  |             <h:outputText value="#{TestManager.property}"></h:outputText>
  |             <hr>
  |             <br>
  |             <h:commandLink action="#{TestManager.onListLoad}" 
value="Reload">
  |             </h:commandLink>
  | 
  |     </h:form>
  | </f:view>
  | 

StartTest page

  | <f:view>
  |     <f:loadBundle basename="messages" var="msgs" />
  |     <h:form>
  |             <h1>Start Page</h1>
  |             <hr>
  |             <br>
  |             <h:commandButton action="#{TestManager.startPage}" value="Start 
Page" />
  |     </h:form>
  | </f:view>
  | 

Bean


  | @Stateful
  | @Name("TestManager")
  | @Scope(ScopeType.SESSION)
  | @Transactional
  | public class TestManagerBean implements Serializable, TestManager
  | {
  |     @PersistenceContext(type = PersistenceContextType.EXTENDED)
  |     private EntityManager   em;
  |     private String               property= "DISPLAY";
  | 
  |     @DataModel(value = "cdList")
  |     private List<Cd>                                                cdList;
  |     public TestManagerBean()
  |     {
  |     }
  | 
  |     @Create
  |     public void create()
  |     {
  |     }
  | 
  |     @Factory("cdList")
  |     @Begin(join=true)
  |     public void findAll()
  |     {
  |             Query  q = em.createQuery("select o from Cd o");
  |             cdList = q.getResultList();
  |     }
  | 
  |     @Remove
  |     @Destroy
  |     public void destroy()
  |     {
  |     }
  | 
  |     public void setProperty(String operation)
  |     {
  |             this.property = operation;
  |     }
  | 
  |     public String getProperty()
  |     {
  |             return property;
  |     }
  | 
  |     public void onListLoad()
  |     {
  |             cdList = null;
  |             System.out.println("reload");
  |     }
  | 
  |     public String startPage()
  |     {
  |             return "/Test.jsp";
  |     }
  | }
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3998497#3998497

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3998497
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to