2012-08-14 65 views
1

我有这个问题,在我点击commandButton“编辑器”时出现这个问题:它运行managedBean中的方法,它将我返回到目标页面,但是在这个目标页面中我必须双击链接按钮将我发送到另一个目标页面,但是如果我只点击“annuler”按钮(它只会将我重定向到目标页面而没有任何数据库更改)我没有这个问题双击JSF 2中的提交按钮

这里是一个包含“editer”和“更改或取消”按钮的页面:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:p="http://primefaces.org/ui" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core"> 

    <body> 

     <ui:composition template="./template_admin.xhtml"> 

      <ui:define name="content"> 



        <p:panel header="Edition d'un utilisateur" id="panel" > 
         <h:panelGrid columns="2" columnClasses="column" cellpadding="5"> 
          <h:outputText value="Nom : " /> 
          <p:inplace id="basic" emptyLabel="Veuillez saisir un Nom" editor="true" > 
           <p:inputText value="#{editUserController.u1.nom}" /> 
          </p:inplace> 


          <h:outputText value="Prénom : " /> 
          <p:inplace id="basic1"> 
           <p:inputText value="#{editUserController.u1.prenom}" /> 
          </p:inplace> 

          <h:outputText value="Type (Dlbclick): "/> 
          <p:inplace id="selectableInplace" label="#{editUserController.u1.type}" effectSpeed="fast" event="dblclick"> 
           <p:selectOneMenu label="Type d'impression" id="rfhfbs" value="#{editUserController.u1.type}" required="true" requiredMessage="veuillez choisir un type d'impression" > 

            <f:selectItems value="#{editUserController.types}" /> 
           </p:selectOneMenu> 
          </p:inplace> 

          <h:outputText value="Division : " /> 
          <p:inplace id="basic2"> 
           <p:inputText value="#{editUserController.u1.division}" /> 
          </p:inplace> 

          <h:outputText value="Grade : " /> 
          <p:inplace id="basic3"> 
           <p:inputText value="#{editUserController.u1.grade}" /> 
          </p:inplace> 

          <h:outputText value="Téléphone du poste : " /> 
          <p:inplace id="basic4"> 
           <p:inputText value="#{editUserController.u1.telPoste}" /> 
          </p:inplace> 


          <h:outputText value="Email : " /> 
          <p:inplace id="basic5"> 
           <p:inputText value="#{editUserController.u1.email}" /> 
          </p:inplace> 

          <h:outputText value="Autres : " /> 
          <p:inplace id="basic6"> 
           <p:inputText value="#{editUserController.u1.autres}" /> 
          </p:inplace> 

          <h:outputText value="Identifiant : " /> 
          <p:inplace id="basic7"> 
           <p:inputText value="#{editUserController.u1.identifiant}" /> 
          </p:inplace> 


          <h:outputText value="Mot de passe : " /> 
          <p:inplace id="basic8"> 
           <p:inputText value="#{editUserController.u1.motdepasse}" /> 
          </p:inplace> 

          <h:outputText value="Retapez le Mot de passe : " /> 
          <p:inplace id="basic9"> 
           <p:inputText value="#{editUserController.u1.motdepasse}" /> 
          </p:inplace> 

         </h:panelGrid> 
         <p:commandButton value="Editer" action="#{editUserController.updateUser()}" update="panel" ></p:commandButton> 
         <p:commandButton value="Annuler" action="utilisateurs" ajax="false" ></p:commandButton> 
        </p:panel> 




      </ui:define> 

     </ui:composition> 

    </body> 
</html> 

这上面的作品以及

这是在两种情况下,目标页面:

<?xml version='1.0' encoding='UTF-8' ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:p="http://primefaces.org/ui" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:h="http://java.sun.com/jsf/html"> 

    <body> 

     <ui:composition template="./template_admin.xhtml"> 

      <ui:define name="content"> 


        <p:commandButton value="ajouter" style="margin-bottom: 20px;" /> 
        <p:dataTable id="carsTable" var="car" value="#{utilisateursController.lu}"> 

         <f:facet name="header"> 
          Expand rows to see detailed information 
         </f:facet> 

         <p:column style="width:4%"> 
          <p:rowToggler /> 
         </p:column> 

         <p:column style="width:48%"> 
          <f:facet name="header"> 
           Id 
          </f:facet> 
          <h:outputText value="#{car.id}" /> 
         </p:column> 

         <p:column style="width:48%"> 
          <f:facet name="header"> 
           Nom et prénom 
          </f:facet> 
          <h:outputText value="#{car.nom} #{car.prenom}" /> 
         </p:column> 

         <p:column> 
          <p:commandLink ajax="false" value="Editer" action="updateUser_v1" > 
           <f:setPropertyActionListener value="#{car}" target="#{editUserController.u1}" /> 
          </p:commandLink> 
         </p:column> 



         <p:column> 
          <p:commandLink value="supprimer" /> 
         </p:column>    

         <p:rowExpansion> 
          <h:panelGrid id="display" columns="2" cellpadding="4" style="width:300px;" 
             styleClass=" ui-widget-content grid"> 

           <h:outputText value="Division : " /> 
           <h:outputText id="model" value="#{car.division}" /> 

           <h:outputText value="Grade : " /> 
           <h:outputText id="year" value="#{car.grade}" /> 

           <h:outputText value="Type : " /> 
           <h:outputText value="#{car.type}"/> 

           <h:outputText value="Télephone du poste : " /> 
           <h:outputText value="#{car.telPoste}"/> 

           <h:outputText value="Email : " /> 
           <h:outputText value="#{car.email}"/> 

           <h:outputText value="Autres : " /> 
           <h:outputText value="#{car.autres}"/> 

           <h:outputText value="Identifiant : " /> 
           <h:outputText value="#{car.identifiant}"/> 

           <h:outputText value="Mot de passe : " /> 
           <h:outputText value="#{car.motdepasse}"/> 


          </h:panelGrid> 
          <h:commandLink value="liste des commandes" ></h:commandLink><br></br> 
          <h:commandLink value="liste des messages" ></h:commandLink> 

         </p:rowExpansion> 
        </p:dataTable> 





      </ui:define> 

     </ui:composition> 

    </body> 
</html> 

在这个页面正上方这个问题我已经

这里是所有managedBean:

@ManagedBean 
@ViewScoped 
public class utilisateursController implements Serializable{ 

    utilisateursHelper uh; 
    List<Utilisateur> lu; 

    public List<Utilisateur> getLu() { 
     return lu; 
    } 
    /** 
    * Creates a new instance of utilisateurs 
    */ 
    public utilisateursController() { 
     uh = new utilisateursHelper(); 
     lu = uh.getUtilisateurs(); 
    } 



} 

这里是其他managedBean:

@ManagedBean 
@SessionScoped 
public class editUserController implements Serializable{ 

    utilisateursHelper uh; 
    Utilisateur u1; 
    String[] Types = {"utilisateur", "operateur", "admin"}; 

    public String[] getTypes() { 
     return Types; 
    } 

    public Utilisateur getU1() { 
     return u1; 
    } 

    public void setU1(Utilisateur u1) { 
     this.u1 = u1; 
    } 

    /** 
    * Creates a new instance of editUserController 
    */ 
    public editUserController() { 
     u1 = new Utilisateur(); 
     uh = new utilisateursHelper(); 
    } 

    public String updateUser() { 


     uh.updateUtilisateur(u1); 
     return "utilisateurs"; 
    } 
} 

这里是小脸模板:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:p="http://primefaces.org/ui" 
     xmlns:ui="http://java.sun.com/jsf/facelets"> 
    <h:head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
     <h:outputStylesheet name="style.css" library="css" /> 
     <h:outputStylesheet name="styleTableExpansion.css" library="css" /> 
    </h:head> 
    <h:body> 

     <div id="page"> 
      <div id="bloc-principal"> 
       <h:form prependId="false"> 
       <div id="templatemo_header_wrapper"> 

        <div id="templatemo_header"> 

         <div id="site_title"> 
          <h1> 
           <span>vous etes connect en tant qu' #{userController.u1.nom} mais le newNum #{commmandeController.nouvelId}</span> 
          </h1> 
         </div> 

         <ul class="social_network"> 
          <li><a id="ident">1dd</a></li> 
          <li><a href="login.xhtml" class="identifiant">on voie celle ci</a></li> 
          <li><a class="identifiant">#{userController.identifiant}2ddd</a></li> 
          <li><h:commandLink action="#{userController.deconnecter}"><h:graphicImage library="images" name="facebook.png" /></h:commandLink></li> 
         </ul> 

        </div> <!-- end of templatemo_header --> 
       </div> <!-- end of templatemo_header_wrapper --> 

       <div id="templatemo_banner_wrapper"> 

        <div id="templatemo_banner"> 


        </div> <!-- end of templatemo_banner --> 

       </div> <!-- end of templatemo_banner_wrapper --> 


       <div id="templatemo_content_wrapper"> 

        <div id="templatemo_content"> 

         <ui:insert name="content">content</ui:insert> 
        </div> <!-- end of templatemo_content --> 
       </div> <!-- end of templatemo_content_wrapper -->  
       </h:form> 
      </div> 
      <div id="templatemo_footer_wrapper"> 

       <div id="templatemo_footer"> 


        <center> 

        </center> 

       </div> <!-- end of footer --> 
      </div> 
     </div> 

    </h:body> 
</html> 

我希望我已经解释了我的问题。 预先感谢您。

+0

情况下设置ajax="false",如果你不明白我的probleme,请向我 – begiPass 2012-08-15 09:41:48

+0

我已经阅读此页http://stackoverflow.com/questions/2118656/hcommandlink-hcommandbutton-is-不被调用/ 2120183#2120183我以为我不验证点4,因为包含问题的页面也包含h:datatable,然后我将managedBean更改为viewScoped但没有结果,你有什么想法,谢谢 – begiPass 2012-08-15 09:50:04

+1

请阅读http://sscce.org以了解如何提供优秀的代码片段。到目前为止发布的代码包含相当多的噪音,使问题更难以看清。例如,'style =“margin-bottom:20px;”'是否有必要重现确切的问题? – BalusC 2012-08-16 02:34:45

回答

2

尝试在<p:commandButton/>