0

I'm using Primefaces 3.4.2 with JSF2.1 I created a page divided into some layout units. In right layout unit I have a accordionPanel and created dynamic menu, and middle center layout consist of ui:include and a page is loaded in the layer , When I click on a link opens a dialog That includes a dynamic page. After opening and closing the dialog without performing any action in right layout,middle center layout doesn't work anymore. I can see it,but I click input text I can not type anything into it also click other components nothing happens!!! what is problem?Is there a solution to this?

when click menu items open dialog include other page and when click tree node center layout change,the page that open in dialog work well,but when close dialog ,center layout buttons and inputs dont work,other layouts components work well!

my new code:

     <p:layoutUnit id="right" position="east" size="145"  style="text-align:center;direction: ltr!important;padding: 0px!important;">
                    <h:form prependId="false">
                         <script type="text/javascript">
                            function test(id,url,title){
                                document.getElementById('h1').value=id;
                                document.getElementById('h2').value=url;
                                document.getElementById('h3').value=title;
                                salamm.jq.click();
                            } 
                        </script>
                        <h:inputHidden id="h1" value="#{adminC.nclose}" />
                        <h:inputHidden id="h2" value="#{adminC.nurl}"/>
                        <h:inputHidden id="h3" value="#{adminC.ntitle}"/>
                        <p:commandButton actionListener="#{adminC.addTab()}" id="salam" widgetVar="salamm" update=":dlgpanel" onstart="waitDialogmain.show()" style="display: none" oncomplete="waitDialogmain.hide();dlg1.show()"/>  
                        <p:accordionPanel style="text-align: center;font-family: tahoma!important" activeIndex="#{menuGen.activeIndex}">
                             <p:tab title="connections"  id="t0" rendered="#{menuGen.menuList1.length()>0}"  >

                                 <center>

                                                <h:outputText escape="false" value="#{menuGen.menuList1}"/>
                                            </center>
                                            <br/>
                                        </p:tab>
                                        <p:tab title="manage" id="t1" rendered="#{menuGen.menuList2.length()>0}" >
                                            <center>
                                                <h:outputText value="#{menuGen.menuList2}" escape="false"/>
                                            </center>
                                            <br/>
                                        </p:tab>

                            </p:accordionPanel>
                     </h:form>
                                 </p:layoutUnit>
                <p:layoutUnit id="center" style="padding: 0px!important;" position="center">
                    <p:layout widgetVar="mkh">
                        <p:layoutUnit id="middleright" position="east" size="170"  collapsible="true" style="padding: 0px;direction: ltr" >
                            <h:form prependId="false">
                             <p:tree value="#{treeC.root}"  var="node" dynamic="true" style="width: 165px;border: none;direction: rtl!important;text-align: right;font-family: tahoma;font-weight: bold" selectionMode="single" selection="#{treeC.selectedNode}">
                                 <p:ajax event="select" listener="#{treeC.onNodeSelect}" onstart="waitDialogmain.show()" oncomplete="waitDialogmain.hide()" />       
                                 <p:treeNode  >
                                     <h:outputText value="#{node}"/>
                                 </p:treeNode>

                             </p:tree>
                             <p:commandButton onclick="mkh.toggle('east')" icon="ui-icon-triangle-1-e" title="ctr+shift+right arrow" style="width: 6px;height: 80px;position: absolute;top: 50%;" type="button"/> 
                      </h:form>
                        </p:layoutUnit>
                        <p:layoutUnit id="middlecenter" style="padding: 0px!important;" position="center">
                            <p:layout style="text-align: center">
                                <p:layoutUnit id="middlecenter1" style="padding: 0px!important;" position="center" resizable="true" >

                                        <p:outputPanel autoUpdate="true" id="dlgpanelcenter">                 
                                        <center>
                                            <ui:include src="./../users/networkReport.xhtml" />
                                        </center>
                                    </p:outputPanel>

                                </p:layoutUnit>                                
                                <p:layoutUnit id="middleBottom" size="100"  style=" padding: 0px!important" position="south" resizable="true" >



                                </p:layoutUnit>
                            </p:layout>
                        </p:layoutUnit>
                    </p:layout>
                </p:layoutUnit>
            </p:layout>
            <p:dialog id="dlg" resizable="false" maximizable="true" modal="true"  draggable="true" height="400"  widgetVar="dlg1" style="background-color: white!important;text-align: center!important;direction: ltr">

                <p:outputPanel style="direction: rtl" id="dlgpanel" >                   
                    <center>
                        <ui:include  src="#{adminC.url}" />
                    </center>
                   </p:outputPanel>

            </p:dialog>

        </h:body>
    </f:view>
</html>

and this is one page that open inside dialog :

 <ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
            template="./../template/masterTemplate.xhtml"
            xmlns:p="http://primefaces.org/ui"
            xmlns:h="http://java.sun.com/jsf/html"
            xmlns:f="http://java.sun.com/jsf/core"
            xmlns="http://www.w3.org/1999/xhtml"
            xmlns:sec="http://www.springframework.org/security/tags">

<ui:define name="top">

</ui:define>
<ui:define name="content">
    <h:form id="regChannel" prependId="false" style="text-align: right;float: none!important">
      ........

   </h:form>        
</ui:define>
<ui:define name="bottom">

</ui:define>

faranak
  • 63
  • 1
  • 9

1 Answers1

5

Get rid of all your nested forms (<h:form),

I noticed you got many of them

You can't have the following structure on page

<h:form.....
  some elements....
  some elements....
  some elements....
  <h:form....

For example you can place one <h:form that will wrap <p:tab

Or place <h:form inside each <p:tab

Another way to check that you don't have nested <h:form is to do view source in your page and look if you have <form inside <form (nested forms which is baaaad)


Update

Are you sure you need all those <ui:define in your dialog ? try to remove all the <ui:define + template="./../template/masterTemplate.xhtml" from inside ui:composition and just leave the

<ui:composition....
    <h:form...

    </h:form>
</ui:composition>
Daniel
  • 36,833
  • 10
  • 119
  • 200
  • I got rid of all forms. And page that opens in dialoge have only one , but did not resolve my issue!! and when just use one h:form in page that include layouts , at initialization layouts component Error occurs and not rendered page ! so I had put a tag for each layerunit! – faranak Jan 14 '13 at 14:02
  • I didn't tell you to get rid of all forms and leave only one form... just to get rid of the nested forms... you can post your new code... but before that just make sure you don't have commandButtons outside the form... – Daniel Jan 14 '13 at 14:04
  • I realized, I did it just to test, I did not think the problem of the form tags,ok ,I'll post my new code – faranak Jan 14 '13 at 14:27
  • tip: make sure that you have `h:form` inside ` – Daniel Jan 14 '13 at 14:33
  • This dialog contains a tag when click menu items, open page inside dialog that this page have – faranak Jan 14 '13 at 14:42
  • Thank you Daniel. The problem was solved by removing . But my manage bean scope was viewScoped,That caused my buttons dont work and I thought my issue is still not resolved,change mainManageBean scope to sessionScoped and solved my issue,thanks again – faranak Jan 19 '13 at 08:59