店间获取 .isml 模板中的日期



我需要检查条件:

<isif condition="#not ((Product:QLC_Enable EQ 'true') AND (Product:QLC_ValidTo > NOW) AND (Product:QLC_Quantity < 1))#">                        
    <span class="items-in-stock align-left">
        <isinclude template="product/inc/CC_StockStatus"/>
    </span>
</isif>

但似乎使用此段是不正确的:

Product:QLC_ValidTo > NOW

特别是问题在于"NOW"的语法。我不知道应该如何设置它,也无法在他们的文档中找到。

有人可以帮忙吗?

我不相信这在isml中是不可能的。Beter 编写 ProductBO 扩展并在 Java 中编写条件。然后,可以在 isml 中调用扩展以显示元素。避免在 isml 中放置太多逻辑,它应该只作为视图起作用。

<isif condition="#NOT ((Product:QLC_Enable EQ 'true') AND (Product:Extension("ProductExt"):isValid) AND (Product:QLC_Quantity < 1))#">                        
    <span class="items-in-stock align-left">
        <isinclude template="product/inc/CC_StockStatus"/>
    </span>
</isif>

您可以在此处了解如何创建业务对象扩展。

public interface ProductBOExtension extends BusinessObjectExtension<ProductBO>
{
    public static final String EXTENSION_ID = "ProductExt";
    public boolean isValid();
}

实现类

public class ProductBOExtensionImpl extends AbstractBusinessObjectExtension<ProductBO> implements ProductBOExtension
{
    public boolean isValid(){
        return this.getExtendedObject().getAttributeValue("QLC_ValidTo").getDateValue().after(new Date());
    }
}

最新更新