0

I'm in the same situation of continuation of pressing button twice

This is the template

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html">
<h:head>
    <title>SXGA</title>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
</h:head>
<h:body style="zoom: 1;">
    <h:panelGroup layout="block" styleClass="wrapper" id="wrapper">
            <ui:insert name="header">
                <ui:include src="/secured/template/commonHeader.xhtml" />
            </ui:insert>
            <ui:insert name="content">
                <ui:include src="/secured/template/commonContent.xhtml" />
            </ui:insert>
            <ui:insert name="footer">
                <ui:include src="/secured/template/commonFooter.xhtml" />
            </ui:insert>
    </h:panelGroup>
</h:body>
</html>

This is the header

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui">
<h:head>
<title>commonHeader</title>
<meta http-equiv="Content-Type"
    content="application/xhtml+xml; charset=UTF-8" />
</h:head>
<h:body>
    <ui:insert name="header">




        <ui:include src="/secured/template/commonMenu.xhtml" />
    </ui:insert>
</h:body>
</html>

This is the Menu

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:p="http://primefaces.org/ui">
<h:head>
    <title>commonMenu</title>
    <meta http-equiv="Content-Type"
        content="application/xhtml+xml; charset=UTF-8" />
</h:head>
<h:body>
    <ui:composition>
        <p:megaMenu orientation="horizontal" style="margin-top:20px">
            <p:submenu label="Gestione Rapporti" icon="ui-icon-check">
                <p:column>
                    <p:submenu label="TV.1">
                        <p:menuitem value="TV.1.1" url="#" />
                        <p:menuitem value="TV.1.2" url="#" />
                    </p:submenu>
                    <p:submenu label="TV.2">
                        <p:menuitem value="TV.2.1" url="#" />
                        <p:menuitem value="TV.2.2" url="#" />
                        <p:menuitem value="TV.2.3" url="#" />
                    </p:submenu>
                </p:column>

            </p:submenu>

            <p:submenu label="Autorizzazione Flussi" icon="ui-icon-document">

                <p:column >
                    <p:submenu label="Sports.1">
                        <p:menuitem value="Sports.1.1" url="#" />
                        <p:menuitem value="Sports.1.2" url="#" />
                    </p:submenu>
                    <p:submenu label="Sports.2">
                        <p:menuitem value="Sports.2.1" url="#" />
                        <p:menuitem value="Sports.2.2" url="#" />
                        <p:menuitem value="Sports.2.3" url="#" />
                    </p:submenu>
                </p:column>


            </p:submenu>

            <!--  <p:menuitem value="Quit" url="http://www.primefaces.org" icon="ui-icon-close" /> -->

            <f:facet name="options">
                <!--
                <h:form>
                    <h:commandLink action="#{loginBean.doLogout}" value="Logout" />
                </h:form>
                <h:form>
                    <h:commandButton value="Avanti" action="#{loginBean.doLogout}" styleClass="btn btn-primary"/>
                </h:form>
                -->
                <h:form>
                    <p:button value="Logout" outcome="#{loginBean.doLogout()}" id="iconOnly" icon="ui-icon-power" title="Icon Only" />
                </h:form>
            </f:facet>

        </p:megaMenu>
    </ui:composition>
</h:body>
</html>

This is the tipical page

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html">
<h:head>
    <title>SXGAWEB</title>
    <meta http-equiv="Content-Type"
        content="application/xhtml+xml; charset=UTF-8" />
</h:head>
<h:body>
    <ui:composition template="/secured/template/commonTemplate.xhtml">
    </ui:composition>
</h:body>

</html>

Before I was using

<h:form>
    <h:commandLink action="#{loginBean.doLogout}" value="Logout" />
</h:form>

or

<h:form>
    <h:commandButton value="Avanti" action="#{loginBean.doLogout}" styleClass="btn btn-primary"/>
</h:form>

All the problem started using PrimeFaces.

With BalusC suggestion continuation of pressing button twice i have solved more or less.

<p:button ... outcome="otherViewId" />

I can't understand the real problem. Is related with templating or in general is related with the normal usage of JSF.

In https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-790 a possible solution is the use of OmniFaces or the same script from Prime Faces http://showcase.omnifaces.org/scripts/FixViewState

A possible solution is mentioned here how to fixe twice needed click inside JSF page?

And

h:commandButton/h:commandLink does not work on first click, works only on second click Where the solution is the script.

I have also read

commandButton/commandLink/ajax action/listener method not invoked or input value not updated

and

Which XHTML files do I need to put in /WEB-INF and which not?.

Community
  • 1
  • 1
user1594895
  • 587
  • 1
  • 10
  • 31

0 Answers0