• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

How can I close a JSF page from the Java Bean

 
Efrat Bar-Nahum
Ranch Hand
Posts: 57
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I have a JSF window (dialog).
When the user presses the OK button I want to submit an action in the java bean.
After that I want to close the window.

What I do today is:



I guess there are 2 options:
1. To close the window (window.close()) from the jsf page itself after the submit, but I don't know how.
2. To do it from the add method in the java bean, but I also don't know how to do it...

Can anyone help me?
Thanks,
Efrat
 
Thomas Walters
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I found the below text at another site (http://www.java-samples.com/showtutorial.php?tutorialid=476):

Closing the popup window

If the close button has a "cancel" semantic, we can use a simple OutputLink:
<h:outputLink onclick="window.close(); return false;" value="#">
<h:outputText value="cancel" />
</h:outputLink>

The window will simply close. The server will not notice anything.
Submit form and close the popup window

For a proper action handling which goes through the whole request lifecycle we need to use an action listener:
<h:commandLink actionListener="#{popupBean.closeWindowClicked}" value="submit and close" />
public void closeWindowClicked(ActionEvent event) {
FacesContext facesContext = FacesContext.getCurrentInstance();

String javaScriptText = "window.close();";

// Add the Javascript to the rendered page's header for immediate execution
AddResource addResource = AddResourceFactory.getInstance(facesContext);
addResource.addInlineScriptAtPosition(facesContext, AddResource.HEADER_BEGIN, javaScriptText);
}

Note: If there is a validation error the window will not close unless the "immediate" attribute of the commandLink is set to "true".

hope that helps,
Tom
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic