weixin_33744854 2014-02-15 14:28 采纳率: 0%
浏览 20

JSF Ajax不更新表单

I am programming a page where a user can change his account settings. Also his password.
But i don't want to show the fields where he can type in the new password all the time.
So i made a commandButton "Change Password" when i click this the inputfields for the new password should show up. I used a c:if for that. When the button is clicked i set a the boolean value showPasswordFields in my ManagedBean on true. This works. But the page update with ajax does not work.
I used this line in my commandButton to update the whole form:

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

Here is my page:

<?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>
  • 写回答

1条回答 默认 最新

  • weixin_33711647 2014-02-15 20:34
    关注

    I see that you have only one form in the page so you can use the @form tag. Replace your

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

    with this:

    <f:ajax execute="@form" render="@form" />
    
    评论

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R