Win a 3 month subscription to Marco Behler Videos this week in the Spring forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

How can I close a JSF page from the Java Bean  RSS feed

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

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?
Thomas Walters
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I found the below text at another site (

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" />

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,
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!