Xpages 最佳实践:sessionscope变量或属性定义

Xpages 最佳实践:sessionscope变量或属性定义,xpages,Xpages,要将值从XPage传递到自定义控件,应该使用哪种方法? a) 在设计时在自定义控件中定义属性。用计算值填写XPage中的属性。在运行时通过自定义控件中的“compositeData”使用该值。 或 b) 将该值放入BeforePageLoad事件中XPage处的会话范围变量中。将会话范围变量绑定到自定义控件中的字段。会话范围主要用于确保值在用户在页面之间导航时保持不变。我喜欢将其称为“购物车”范围:如果您在Domino中构建了一个电子商务站点,您不会希望该站点忘记用户仅仅因为单击返回主页就向购物

要将值从XPage传递到自定义控件,应该使用哪种方法? a) 在设计时在自定义控件中定义属性。用计算值填写XPage中的属性。在运行时通过自定义控件中的“compositeData”使用该值。 或
b) 将该值放入BeforePageLoad事件中XPage处的会话范围变量中。将会话范围变量绑定到自定义控件中的字段。

会话范围主要用于确保值在用户在页面之间导航时保持不变。我喜欢将其称为“购物车”范围:如果您在Domino中构建了一个电子商务站点,您不会希望该站点忘记用户仅仅因为单击返回主页就向购物车添加了一个产品。因此,此范围对于用户导航应用程序时记住搜索/排序/筛选选项等功能也很有用,因此每次用户导航到其他地方并返回时,它都会记住他们以前的行为,而无需将此信息永久存储在NSF中

但是,要将页面信息从容器传递到自定义控件,
compositeData
无疑是一种方法。这是因为该变量仅在相关控件的处理期间填充传递的参数。一旦处理了该控制,所有指向所传递参数的指针都会自动清理,与在每个用户会话期间存储相同的信息相比,这为每个实例提供了增量可伸缩性改进

会有重叠的情况:给定的自定义控件可能引用适合存储在会话范围中的信息。在这个场景中,我喜欢混合这两种技术。。。例如:


上述语法允许自定义控件通过其容器传递会话范围中存储相关信息的位置的标识符。这提供了很大的灵活性,因为我可以将同一个控件放到多个上下文中,每个上下文都告诉控件应该在作用域中检索/存储哪些信息。

会话作用域主要用于确保在用户在页面之间导航时值保持不变。我喜欢将其称为“购物车”范围:如果您在Domino中构建了一个电子商务站点,您不会希望该站点忘记用户仅仅因为单击返回主页就向购物车添加了一个产品。因此,此范围对于用户导航应用程序时记住搜索/排序/筛选选项等功能也很有用,因此每次用户导航到其他地方并返回时,它都会记住他们以前的行为,而无需将此信息永久存储在NSF中

但是,要将页面信息从容器传递到自定义控件,
compositeData
无疑是一种方法。这是因为该变量仅在相关控件的处理期间填充传递的参数。一旦处理了该控制,所有指向所传递参数的指针都会自动清理,与在每个用户会话期间存储相同的信息相比,这为每个实例提供了增量可伸缩性改进

会有重叠的情况:给定的自定义控件可能引用适合存储在会话范围中的信息。在这个场景中,我喜欢混合这两种技术。。。例如:

上述语法允许自定义控件通过其容器传递会话范围中存储相关信息的位置的标识符。这提供了很大的灵活性,因为我可以将同一个控件放到多个上下文中,每个上下文都告诉控件应该在作用域中检索/存储哪些信息