[jboss-user] [JBoss Seam] - question about programmatically accessing seam component
gsegura
do-not-reply at jboss.com
Thu Nov 22 04:49:33 EST 2007
Hello,
I'm in the need of programmatically accessing (I mean not using @In annotation) a component which is created with @Factory . But neither this:
| Course course = (Course)Contexts.lookupInStatefulContexts("course") ;
|
nor this, is working:
Course course=(Course)Contexts.getSessionContext().get("course") ;
Both methods return null, as if the factory method is not been called. Is this correct behavior or could it be something in my code, I reproduce here the related parts.
By the way I'm not able to inject the component because its factory method is declared inside a component with @Restrict("#{identity.loggedIn}") declared, but I'm trying to use it when no login has happened yet. But just before I plan to use the login ocurrs, so at that time the @Restrict should not be a problem. If I try to use @In the injection tries to occur to early.
I think I better wrote the code:
firstly the component with the declared factory
| @Name("courseManager")
| @Scope(ScopeType.SESSION)
| @Restrict("#{identity.loggedIn}")
| public class CourseManagerAction implements CourseManager {
|
| @Factory
| public Course getCourse() {
| // gets default single course
| Course course = (Course) entityManager
| .createQuery("select c from Course c").getSingleResult();
| return course;
| }
| }
|
then the case where I want to use the "course" component:
| @Scope(ScopeType.EVENT)
| @Name("register")
| public class RegisterAction implements Register {
|
| public void register() {
| //here the user register itself ....
| //after that do auto-login
| identity.authenticate() ;
|
| //now I want to access the course
| Course course = (Course)Contexts.getSessionContext().get("course") ;
|
| //but course is null
| //why? shouldn't this call be similar to: @In Course course ??
| }
| }
|
any comments?
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4107020#4107020
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4107020
More information about the jboss-user
mailing list