Hi Volker, I tried to build a minimal application to reproduce this problem for you but the problem does not appear with it. So I have to find out what's wrong with my real life (complex) application.
Regards Helmut >Hi Helmut, > >i can't reproduce your problem. > >anotherAction is invoked even on first click after clicking the newWindow >link. > >Can you create a war showing the problem and send it to me? > >Regards, > Volker > >2007/4/19, H. Swaczinna <[EMAIL PROTECTED]>: >> Hi Volker! >> >> >i will try to test this this afternoon. (hope i found the time) >> >> Thanks! >> >> >are you sure this work? >> > public void anotherAction() {...} >> >should be >> > public String anotherAction() {...; return null;} >> >> Yes, that makes no difference. I always use void, when there's no >> navigation. >> >> Regards >> Helmut >> >> >> > >> >Regards, >> > Volker >> > >> >2007/4/19, H. Swaczinna <[EMAIL PROTECTED]>: >> >> Hi, >> >> >> >> I want to display the result of an action (a new page) in a new >> >> browser window. So I set the target attribute of tc:link or >> >> tc:button to the window name. This works fine. But when I click another >> >> button or link in the page the action is not executed (the page is >> >> rendered again). I always have to click the button twice. >> >> >> >> I think this is a known problem with a known solution. In my code for >> >> the PDF download I included this two lines to avoid this problem: >> >> >> >> // Save serialized view or else after clicking on the export button, >> >> // user will have to click TWICE to invoke another action >> >> StateManager stateManager = >> >(StateManager)facesContext.getApplication().getStateManager(); >> >> stateManager.saveSerializedView(facesContext); >> >> >> >> (Taken from http://swforum.sun.com/jive/thread.jspa?threadID=63566) >> >> >> >> Maybe this code should be included in Tobago (or myFaces?) when the >> >> target attribute is set. >> >> >> >> Here's a simple test case for you: >> >> >> >> test1.jsp >> >> >> >> <f:view> >> >> <tc:page id="testPage1" width="300px" height="200px"> >> >> <tc:out value="Page 1"/> >> >> <tc:link label="new window" >> >> target="newWindow" >> >> action="#{controller.newWindowAction}" /> >> >> <tc:button label="another action" >> >> action="#{controller.anotherAction}" /> >> >> </tc:page> >> >> </f:view> >> >> >> >> test2.jsp >> >> >> >> <f:view> >> >> <tc:page id="testPage2" width="300px" height="200px"> >> >> <tc:out value="Page 2"/> >> >> </tc:page> >> >> </f:view> >> >> >> >> faces-config.xml >> >> >> >> <navigation-rule> >> >> <from-view-id>/test1.jsp</from-view-id> >> >> <navigation-case> >> >> <from-outcome>newWindow</from-outcome> >> >> <to-view-id>/test2.jsp</to-view-id> >> >> </navigation-case> >> >> </navigation-rule> >> >> >> >> Controller.java >> >> >> >> public String newWindowAction() { >> >> LOG.debug("newWindowAction"); >> >> return "newWindow"; >> >> } >> >> >> >> public void anotherAction() { >> >> LOG.debug("anotherAction"); >> >> } >> >> >> >> When you click the "new window" link in test1.jsp a new window is >> >> opened with test2.jsp. But when you click the link again test1.jsp >> >> is displayed in the new window. When you click the "another action" >> >> button after clicking the "new window" link the anotherAction() >> >> is not called. You have to click the button once again. >> >> >> >> I'm using myFaces 1.1.5 and Tobago 1.0.11 from yesterday. >> >> I think you should be able to reproduce this behavior. >> >> >> >> Regards >> >> Helmut >> >> >>