0 Replies Latest reply: Apr 25, 2012 6:25 AM by Thor-K RSS

    @ViewConfig with @UrlMapping and EL-injected path parameters

    Thor-K Newbie

      Hello, I have a simple @ViewConfig:

       

      @ViewPattern("/jsf/link/link.xhtml")

      @UrlMapping(pattern="/link/#{linkBean.token}")

       

      wich should set a String into a @Named Bean with EL-injected path paramter (http://ocpsoft.org/docs/prettyfaces/3.3.2/en-US/html/Configuration.html#config.pathparams.el):

       

      @Named @RequestScoped

      public class LinkBean implements Serializable

      {

          private String token;

          public String getToken() {return token;}

          public void setToken(String token) {this.token = token;logger.info("SET "+token);}

       

        @PostConstruct

        public void init() throws FileNotFoundException

        {logger.info("@PostConstruct: "+token); }

       

        @PreDestroy

        public void close() throws FileNotFoundException

        {logger.info("@PreDestroy: "+token); }

      }

       

      Actually this is working, but not in the ordering I expect:

       

      12:08:02,625 INFO  [LinkBean] (http--127.0.0.1-8080-6) @PostConstruct: null

      12:08:02,626 INFO  [LinkBean] (http--127.0.0.1-8080-6) SET 123

      12:08:02,677 INFO  [LinkBean] (http--127.0.0.1-8080-6) @PreDestroy: 123

       

      The parameter is set *after* the @PostConstruct? In my understanding (citing from http://stackoverflow.com/questions/1804778/jsf-1-2-does-postconstruct-execute-before-or-after-getters)

       

      1. Bean is constructed.
      2. Managed properties are set.
      3. @PostConstruct is called.
      4. Bean is brought in JSF lifecycle.

      Is this normal behaviour? How can I access the paramater in the @PostConstruct method?