1 Reply Latest reply on Jul 24, 2011 4:31 AM by Dmitriy Sukharev

    Double retrieving request parameter

    Dmitriy Sukharev Newbie


      My aim is to show filtered data in table where filter depends on request parameter. That data might be large therefore I don't want to store it in the session. I have hard time trying to pass that request parameter to filtering java code. So I created separate session bean that contains only one string for that parameter and I added it to backup bean, which performs filtering:

      public class AType {
          private String type; 
          // getter & setter


      public class ActivityController {
          private AType atype;
          public List<Activity> getAll() {
              String type = atype.getType();
              System.out.println("Type = " + type);
              if ("future".equals(type)) {
                  return getFutureActivities();
              } else {
                  return getTodayActivities();

      I'm obtaining the parameter in this way:

          <f:viewParam name="type" value="#{activityController.atype.type}" />
      <ui:composition template="WEB-INF/pages/template.xhtml">
              <ui:define name="body">
                          <rich:extendedDataTable ... value="#{activityController.all}"
                              var="item" >

      The problem is that for some reason activityController.atype.type is usually initialised twice - firstly the right value is set and after that (but not always) its previous value is set. So I have to press links many times before I reach desired page. But when I change URL (not clicking at the link), everything works in the proper way.


      What's wrong with this, what do I do wrong?


      P.S. btw links on which I pressed were added in this way:

      <h:outputLink value="activities.xhtml?type=future">
               <h:outputText value="Future Activities"></h:outputText>