Question

J'ai la composante scope de session Seam, CustomIdentity qui remplace la norme Seam Identity (également scope de session). Le CustomIdentity étendu possède une propriété

@Out(required=false, scope=ScopeType.SESSION)private User user

Dans la connexion surchargée () je définir un objet utilisateur, avec des renseignements du directeur de l'HttpServletRequest. Dans la première requête dans l'application de l'objet utilisateur est outjected comme prévu une portée SESSION. Dans la deuxième demande, cependant, l'objet utilisateur a disparu de la session, et quand je visite une page qui Injecte, je reçois une exception.

Ma question est quand exactement le composant est outjected:

  • Après chaque une méthode du composant CustomIdentity (même si elle ne contient pas de référence de user)?
  • Après chaque procédé qui contient une référence de la composante de l'utilisateur?

Et sur l'attribut required:

  • Si sur outjection l'objet utilisateur à evalue null, est déjà outjected utilisateur va être retiré du champ de session?

Vive!

Était-ce utile?

La solution

Pour votre première question: le composant est oujected après chaque méthode de CustomIdentity. Jetez un coup d'oeil au code source Seam correspondant org.jboss.seam.core.BijectionInterceptor (Seam 2.2.0). Bijection a lieu au composant, à savoir, classe, niveau.

Pour votre deuxième question: chaque fois qu'une demande de finitions CustomIdentity, la valeur de votre champ est outjected. Si vous utilisez la propriété outjection require=false, le user qui est actuellement outjected dans votre contexte de session peut être remplacée par null.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top