hybris addressreversepopulator不填充addressmodel上的line1

rqenqsqc  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(328)

我在使用 AddressReversePopulator 用于转换 AddressDataAddressModel .
问题出现在这条线上 populate(addressData, addressModel) 方法

addressModel.setLine1(addressData.getLine1());
addressModel.setLine2(addressData.getLine2());

方法setlinex on AddressModel.java 使用

getPersistenceContext().setDynamicValue(this,LINE1, value);

但是 DynamicAttributesProvider()ItemModelContextImpl.class 当用三元组填充第1行和第2行时为null,因此它不会填充第1行和第2行中的两个值 addressModel 但是在populator的其他字段中,这个提供者是可以的。
我怎样才能解决这个问题?
谢谢您

ncgqoxb0

ncgqoxb01#

在这种情况下,如果接收到的第1行和第2行为null,请尝试设置空字符串并继续。会有用的。示例:

addressModel.setLine1(formatLine1(addressData.getLine1()));
private String formatLine1(String line1)
{
    if (StringUtils.isEmpty(line1))
    {
        return "";
    }

    String[] parts = line1.split(",");
    if (parts.length > 0)
    {
        String[] newLine1 = Arrays.stream(parts).filter(p -> !p.isEmpty()).toArray(String[]::new);

        return String.join("," + " ", newLine1);
    }
    return "";
}

相关问题