2014-02-15 86 views
0

我正在編程一個頁面,用戶可以更改他的帳戶設置。還有他的密碼。
但我不想顯示他可以隨時鍵入新密碼的字段。
所以我做了一個commandButton「更改密碼」,當我點擊這個新的密碼輸入字段應該顯示出來。我用了c:如果是這樣。當按鈕被點擊時,我在我的ManagedBean中設置布爾值showPasswordFields爲true。這工作。但使用ajax進行頁面更新不起作用。
我用這條線在我的命令按鈕來更新整個表格:JSF阿賈克斯不更新表格

<p:ajax update=":formUserSettings" /> 

這裏是我的網頁:

<?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:h="http://java.sun.com/jsf/html" 
    xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:c="http://java.sun.com/jsp/jstl/core"> 

    <h:body> 

     <ui:composition template="/META-INF/templates/templateContentOne.xhtml"> 

      <ui:define name="title"> 
       <h:outputText value="User-Settings" /> 
      </ui:define> 

      <ui:define name="content"> 
       <h:form id="formUserSettings"> 

        <p:tabView id="TabViewUserSettings"> 
         <p:tab title="Account" id="TabAccount"> 
          <p:panelGrid> 
           <p:row> 
            <p:column> 
             <h:outputLabel value="User-No" /> 

            </p:column> 
            <p:column> 
             <p:inputText value="#{userSettingBean.user.ID}" /> 
            </p:column> 
           </p:row> 
           <p:row> 
            <p:column> 
             <h:outputLabel value="E-Mail" /> 
            </p:column> 
            <p:column> 
             <p:inputText value="#{userSettingBean.user.EMAIL}" /> 
            </p:column> 
           </p:row> 




           <p:row> 
            <p:column> 
             <h:outputLabel value="Password" /> 
            </p:column> 
            <p:column> 
             <p:commandButton id="commandButtonChange Password" value="Change Password" 
             actionListener="#{userSettingBean.enablePasswordFields}" immediate="true"> 
              <p:ajax update=":formUserSettings" /> 
             </p:commandButton> 
            </p:column> 

           </p:row> 



           <c:if test="#{userSettingBean.showPasswordFields}"> 

            <p:row id="RowConfirmOldPw"> 
             <p:column> 
              <p:inputText id="oldPwd" 
               value="#{userSettingBean.oldPassword}" /> 
              <p:watermark for="oldPwd" value="Old Password" /> 
             </p:column> 
            </p:row> 



            <p:row id="RowTypeNewPassword"> 

             <p:column> 
              <p:password id="pwd1" value="#{userSettingBean.password1}" match="pwd2" lable="New Password"/> 
              <p:watermark forElement="pwd1" value="Password" /> 
             </p:column> 
             <p:column> 
              <p:password id="pwd2" value="#{userSettingBean.password2}" lable="Re-enter"/> 
              <p:watermark forElement="pwd2" value="Re-Enter" /> 
             </p:column> 
            </p:row> 


          </c:if> 


           <p:row> 
            <p:column> 
             <h:outputLabel value="Title" /> 
            </p:column> 
            <p:column> 
             <p:inputText value="#{userSettingBean.user.TITLE}" /> 
            </p:column> 
           </p:row> 

           <p:row> 
            <p:column> 
             <h:outputLabel value="Degree" /> 
            </p:column> 
            <p:column> 
             <p:inputText value="#{userSettingBean.user.DEGREE}" /> 
            </p:column> 
           </p:row> 

           <p:row> 
            <p:column> 
             <h:outputLabel value="Name" /> 
            </p:column> 
            <p:column> 
             <p:inputText id="firstname" value="#{userSettingBean.user.FIRST_NAME}"/> 
             <p:watermark for="firstname" value="Firstname" /> 
            </p:column> 
            <p:column> 
             <p:inputText id="lastname" value="#{userSettingBean.user.LAST_NAME}"/> 
             <p:watermark for="lastname" value="Lastname" /> 
            </p:column> 
           </p:row> 

           <p:row> 
            <p:column> 
             <h:outputLabel value="Birthday" /> 
            </p:column> 
            <p:column> 
             <p:inputText value="#{userSettingBean.user.BIRTHDAY}"/> 
            </p:column> 
           </p:row> 



           <p:row> 
            <p:column> 
             <p:commandButton style="float: left;" value="Save" actionListener="#{userSettingBean.saveChanges}"/> 
            </p:column> 
           </p:row> 


          </p:panelGrid> 

         </p:tab> 







         <p:tab title="Contact"> 
         <p:panelGrid> 
          <p:row> 
           <p:column> 
            <h:outputLabel value="Street Name" /> 
           </p:column> 
           <p:column> 
            <p:inputText value="#{userSettingBean.user.STREET_NAME}"/> 
           </p:column> 
          </p:row> 
          <p:row> 
           <p:column> 
            <h:outputLabel value="Street No." /> 
           </p:column> 
           <p:column> 
            <p:inputText value="#{userSettingBean.user.STREET_NO}"/> 
           </p:column> 
          </p:row> 
          <p:row> 
           <p:column> 
            <h:outputLabel value="ZIP" /> 
           </p:column> 
           <p:column> 
            <p:inputText value="#{userSettingBean.user.ZIP}"/> 
           </p:column> 
          </p:row> 
          <p:row> 
           <p:column> 
            <h:outputLabel value="City" /> 
           </p:column> 
           <p:column> 
            <p:inputText value="#{userSettingBean.user.CITY}"/> 
           </p:column> 
          </p:row> 

          <p:row> 
           <p:column> 
            <h:outputLabel value="State" /> 
           </p:column> 
           <p:column> 
            <p:inputText value="#{userSettingBean.user.STATE}"/> 
           </p:column> 
          </p:row> 
          <p:row> 
           <p:column> 
            <h:outputLabel value="Country" /> 
           </p:column> 
           <p:column> 
            <p:inputText value="#{userSettingBean.user.COUNTRY}"/> 
           </p:column> 
          </p:row> 
          <p:row> 
           <p:column> 
            <h:outputLabel value="Fixed Line" /> 
           </p:column> 
           <p:column> 
            <p:inputText value="#{userSettingBean.user.FIXED_LINE}"/> 
           </p:column> 
          </p:row> 
          <p:row> 
           <p:column> 
            <h:outputLabel value="Mobil Phone" /> 
           </p:column> 
           <p:column> 
            <p:inputText vlaue="#{userSettingBean.user.MOBILE_PHONE}"/> 
           </p:column> 
          </p:row> 

          <p:row> 
           <p:column> 
            <h:outputLabel value="Fax" /> 
           </p:column> 
           <p:column> 
            <p:inputText value="#{userSettingBean.user.FAX}"/> 
           </p:column> 
          </p:row> 

          <p:row> 
           <p:column> 
            <p:commandButton style="float: left;" value="Save" actionListener="#{userSettingBean.saveChanges}"/> 
           </p:column> 
          </p:row> 

         </p:panelGrid> 

         </p:tab> 
        </p:tabView> 


       </h:form> 
      </ui:define> 
     </ui:composition> 
    </h:body> 

</html> 

回答

0

我看到你只有一種形式的網頁,讓您可以使用@ form標記。更換你

<p:ajax update=":formUserSettings" /> 

與此:

<f:ajax execute="@form" render="@form" /> 
+0

我現在嘗試這樣做,它仍然無法正常工作。 – hiaslosch17