【问题标题】:intershop get date in .isml templateintershop 在 .isml 模板中获取日期
【发布时间】:2017-10-13 10:55:10
【问题描述】:

我需要检查条件:

<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”的语法问题。我不知道应该如何设置,也无法在他们的文档中找到。

有人可以帮忙吗?

【问题讨论】:

    标签: java date templating intershop isml


    【解决方案1】:

    我不相信这在 isml 中是可能的。最好写一个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>
    

    您可以查看here 如何创建业务对象扩展。

    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());
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-05
      • 2013-03-02
      • 1970-01-01
      • 2018-05-31
      • 2018-05-23
      • 1970-01-01
      • 2021-03-09
      • 2019-11-15
      相关资源
      最近更新 更多