| Author |
How can I close a JSF page from the Java Bean
|
Efrat Bar-Nahum
Ranch Hand
Joined: Jan 19, 2006
Posts: 57
|
|
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
Joined: Jul 15, 2009
Posts: 2
|
|
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
|
 |
 |
|
|
subject: How can I close a JSF page from the Java Bean
|
|
|