• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 390
  • Last Modified:

How to call a .xhtml page on the click of a p:commandButton

I have a simple p:commandButton as follows...

<p:commandButton value="Next" type="button" />

I have a next.html page. I want to display the contents of the next.html on the
browser when clicked the "Next" button. How should I do that in JSF/PrimeFaces?
0
prain
Asked:
prain
  • 4
  • 2
2 Solutions
 
Gibu GeorgeCTOCommented:
You can either add an actionlistener if you want to send the request to server and do some pre requisite operations before going to the next.html, or you can add a javascript function on the onclick and use the window.href.location to be changed to next.html
0
 
prainAuthor Commented:
In a table I have this component....


<td>
<p:commandButton value="Next" type="button" actionListener="#{personnel.resignationContinuation()}" />
</td>


And the listener is shown below...

Yet, the continuationPage.xhtml page is not getting loaded.

public void resignationContinuation()
{
 try
  {
   FacesContext context = FacesContext.getCurrentInstance();
                ExternalContext externalContext =
   context.getExternalContext();
      
   externalContext.redirect(externalContext.getRequestContextPath() +
"/subpages/continuationPage.jsf");
            }
            catch (IOException e) {
                               }
      }
0
 
Gibu GeorgeCTOCommented:
Can you try logging the exception instead of an empty catch block or do e.printStackTrace(), and let me know if any exception is occuring
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
prainAuthor Commented:
Ok. I am working on JBoss Development Studio (just FYI). This is a actually a mistery for me. Just for testing purposes I just added a System.out.println() after removing everything from the resignationContinuation() event handler. I was expecting to see the print line coming up on the JBoss Console (This is the way I test out other event handlers). For some reason the p:commandButton (at least this one) does not fire the actionListener.  Here is a skeletion of my current code....
<p:panel style="text-align:center">
  <p:commandButton value="Cancel" type="button" style="width:80px" />
  <p:commandButton value="Update" type="button"  style="width:80px" />
  <p:commandButton id="cmdBtnNext"
                                       value="Next"
                                       actionListener="#{resignationContinuation.show}"
                                       style="width:80px"
                                       type="submit" />
</p:panel>

And Here is the bean code....
@ManagedBean(name="resignationContinuation")
@ViewScoped
public class ResignationContinuation extends PageBean
{
  public ResignationContinuation() {
            // TODO Auto-generated constructor stub
  }

  @PostConstruct
  public void init() throws Exception {
            try {
                   super.init();
            }catch(Exception e) {
   }
}

public void show()
{
  try{
          System.out.println("Reached show()");
          catch(Exception e)
         {
              e.printStackTrace();
          }
     }
}


No stack trace or no print line. Very strange......
0
 
prainAuthor Commented:
Just for the heck of it, I seperated these buttons into a seperate form. Boom, it works!!!!!!!!!!!!!!!!!!. I do not know how and why if does not work when these componets are in the same form with the other components.
0
 
prainAuthor Commented:
Good pointer
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now