Considérons cet exempleQuel est le point de la portée sur Déballer composants (Manager)
@Scope(ScopeType.SESSION)
@Name("test")
@BypassInterceptors
public Class Test {
@Unwrap
public List<String> test() {
//do a long and major calculation and return the List
}
}
Ensuite, vous avez une vue et que vous obtenez votre liste
<h:selectOneMenu value="#{someBean.text}">
<s:selectItems value="#{test}"/>
</h:selectOneMenu>
Maintenant, à mon avis, parce que je Scope session, la liste doit être mise en cache, ou le Seam Manager composant au moins, de sorte qu'il s'exécutera une fois, mais lorsque vous revisitez la page dans la même session, il ne devrait pas fonctionner à nouveau, mais quand je ré-entrer la page la méthode Unwrap est encore exécutée. Donc, ma question est, quelle est la différence entre la portée de la session et dire la portée de l'événement ici?
Pour contourner ce que je l'ai mis en cache manuellement la liste dans le contexte de la session et le récupérer à partir du contexte si elle est présente dans la méthode @Unwrap
Oui, j'ai enfin compris cela. C'est étrange, j'utilise Seam maintenant quotidiennement depuis deux ans et demi, et j'apprends encore des choses. Cadre majeur! –