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?
prainAsked:
Who is Participating?
 
prainConnect With a Mentor Author 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
 
Gibu GeorgeConnect With a Mentor Chief Technology OfficerCommented:
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
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
Gibu GeorgeChief Technology OfficerCommented:
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
 
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.