如何使用f:ajax更新h:panelGroup

时间:2014-01-18 05:40:38

标签: jsf primefaces

如何使用f:ajax更新h:panelGroup。我选择h:selectBooleanCheckbox从officeAdd1获取值并将此值设置为headOfficeAdd1.Am在bean中获取officeAdd1值但我想将值更新为headOfficeAdd1。

...谢谢

      <h:form id="form">
   <p:panel id="display">            
                <p:spacer width="20" />
                <h:panelGrid columns="6">
                    <h:outputLabel value="Address:"
                        style="text-align: left;display: block;width:130px;" />
                    <p:inputTextarea
                        value="#{companyInformationBean.current.officeAdd1}"
                        autoResize="true" style="width:170px;" maxlength="150" />

                </h:panelGrid>

                <h:panelGrid columns="6">
                    <h:selectBooleanCheckbox id="remember"
                        value="#{companyInformationBean.current.checkBox}">
                        <f:ajax event="click" execute="@form"
                            listener="#{companyInformationBean.checkBoxValue}" />
                    </h:selectBooleanCheckbox>
                    <h:outputLabel value="Same as Registered Office Address"
                        style="text-align: left;display: block;" />
                    <p:spacer width="20" />

                </h:panelGrid>
                <p:spacer width="20" />
                <h:panelGroup id="hidepanelgroup">
                <h:panelGrid id="getaddress" columns="6">
                    <h:outputLabel value="Head Office Address:"
                        style="text-align: left;display: block;width:130px;" />
                    <p:inputTextarea id="headadd"
                        value="#{companyInformationBean.current.headOfficeAdd1}"
                        autoResize="true" style="width:170px;" maxlength="150" />

               </h:panelGrid>
               </h:panelGroup>
   </p:panel> 
   </h:form>

豆:

      public void checkBoxValue()
{
    if(current.getCheckBox()==true)
    {

            logger.info("getofadd"+current.getOfficeAdd1());
            current.setHeadOfficeAdd1(current.getOfficeAdd1());

    }
    else
    {
            logger.info("checkbox value false");
    }
}

1 个答案:

答案 0 :(得分:1)

您需要在<f:ajax render>属性中指定要呈现的客户端ID。

因此,鉴于第二个textarea的ID为headadd,这应该是:

<f:ajax ... render="headadd" />

对具体问题

无关,将布尔值与布尔表达式中的布尔值进行比较实际上没有任何意义。只需直接检查布尔值。

if (current.getCheckBox())

顺便说一下,尝试使用自我记录属性和方法名称。属性名称remember会更合适。