AEM 6.1:实施国家/地区下拉列表的最佳方式

AEM 6.1:实施国家/地区下拉列表的最佳方式,aem,experience-manager,Aem,Experience Manager,执行以下操作的最佳方法是什么: 包含国家/地区的下拉列表。国家列表采用json格式,从web服务检索 根据国家选择显示或预填充状态下拉列表 这看起来是一个标准要求,但无法找到合适的解决方案 如果使用Sightly,我们现在所做的是调用json获取国家/地区列表并填充,并基于选择show STATES(美国)或Province(加拿大)进行show/Hide。但他正在寻找更好的替代品 <!-- COUNTRY --> <select class="myContactFieldSe

执行以下操作的最佳方法是什么:

  • 包含国家/地区的下拉列表。国家列表采用json格式,从web服务检索

  • 根据国家选择显示或预填充状态下拉列表

  • 这看起来是一个标准要求,但无法找到合适的解决方案

    如果使用Sightly,我们现在所做的是调用json获取国家/地区列表并填充,并基于选择show STATES(美国)或Province(加拿大)进行show/Hide。但他正在寻找更好的替代品

    <!-- COUNTRY -->
    <select class="myContactFieldSelect" id="companyCountry" tabindex="22" name="countryID">
    <option value="">Please Select</option>
    <div data-sly-list.country="${jHelper.pJSON.countryList}" data-sly-unwrap>
        <option value="${jHelper.pJSON.countryList[country].countryID @ context='html'}">
            ${jsonHelper.parsedJSON.countryList[country].countryLongName @ context='html'}
        </option>
    </div>
    </select>
    
    <!-- STATES or PROVINCES -->
    <select class="myContactFieldSelect" id="companyState" tabindex="20" name="stateLongName" style="display: none;">
    <option selected="selected" value="">Please Select</option>
    <div data-sly-list.state="${jHelper.pJSON.stateListUS}" data-sly-unwrap>
        <option>${jHelper.pJSON.stateListUS[state].stateLongName @ context='html'}</option>
    </div>
    </select>
    
    <!-- OR -->
    
    <select class="myContactFieldSelect" id="companyProvince" tabindex="21" name="provinceLongName" style="display: none;">
    <option selected="selected" value="">Please Select</option>
    <div data-sly-list.province="${jHelper.pJSON.stateListCA}" data-sly-unwrap>
        <option>${jHelper.pJSON.stateListCA[province].stateLongName @ context='html'}</option>
    </div>
    </select>
    
    
    请选择
    ${jsonHelper.parsedJSON.countryList[country].countryLongName@context='html'}
    请选择
    ${jHelper.pJSON.stateListUS[state].stateLongName@context='html'}
    请选择
    ${jHelper.pJSON.stateListCA[province].stateLongName@context='html'}
    
    我的解决方案是:

  • 在分类法中管理国家/城市层次结构
  • 从分类法为Country City创建Json
  • 使用Javascript读取Json并为国家填充正确的城市

  • 通过基于用户地理位置预先填充国家/城市,可以增强上述解决方案

    我使用此示例尝试了此路线,但这仅适用于自适应表单中的下拉列表组件(称为“/libs/fd/af/components/GuideDropdownList”,位于“/libs/fd/af/components/GuideDropdownList”),而不适用于OOTB下拉列表组件。您可以使用选择xtyle使用动态下拉列表。您需要做的是:您可以使用OOB selection xtype实现这一点。您可以通过公开一个servlet来实现这一点,该servlet以以下格式生成分类:[{“value”:10,“text”:“a”},{“value”:20,“text”:“B”}]然后使用selection xtype的options属性并给出servlet的路径。您能给我一些使用servlet路径的xtype示例吗?