[jboss-cvs] jboss-seam/src/main/org/jboss/seam/core ...

Gavin King gavin.king at jboss.com
Sun Dec 10 09:22:28 EST 2006


  User: gavin   
  Date: 06/12/10 09:22:28

  Modified:    src/main/org/jboss/seam/core   Page.java Pages.java
  Log:
  JBSEAM-577 page params with no value binding
  
  Revision  Changes    Path
  1.7       +4 -0      jboss-seam/src/main/org/jboss/seam/core/Page.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Page.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Page.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -b -r1.6 -r1.7
  --- Page.java	27 Nov 2006 03:28:03 -0000	1.6
  +++ Page.java	10 Dec 2006 14:22:28 -0000	1.7
  @@ -39,6 +39,10 @@
            {
               return (Converter) converterValueBinding.getValue();
            }
  +         else if (valueBinding==null)
  +         {
  +            return null;
  +         }
            else
            {
               Class<?> type = valueBinding.getType();
  
  
  
  1.57      +63 -24    jboss-seam/src/main/org/jboss/seam/core/Pages.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Pages.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Pages.java,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -b -r1.56 -r1.57
  --- Pages.java	27 Nov 2006 03:28:03 -0000	1.56
  +++ Pages.java	10 Dec 2006 14:22:28 -0000	1.57
  @@ -35,6 +35,7 @@
   import org.jboss.seam.annotations.Scope;
   import org.jboss.seam.contexts.Contexts;
   import org.jboss.seam.core.Expressions.MethodBinding;
  +import org.jboss.seam.core.Expressions.ValueBinding;
   import org.jboss.seam.util.DTDEntityResolver;
   import org.jboss.seam.util.Parameters;
   import org.jboss.seam.util.Resources;
  @@ -196,17 +197,20 @@
         for (Element param: children)
         {
            String valueExpression = param.attributeValue("value");
  -         if (valueExpression==null)
  -         {
  -            throw new IllegalArgumentException("must specify value for page <param/> declaration");
  -         }
            String name = param.attributeValue("name");
            if (name==null)
            {
  +            if (valueExpression==null)
  +            {
  +               throw new IllegalArgumentException("must specify name or value for page <param/> declaration");
  +            }
               name = valueExpression.substring(2, valueExpression.length()-1);
            }
            Page.PageParameter pageParameter = new Page.PageParameter(name);
  +         if (valueExpression!=null)
  +         {
            pageParameter.setValueBinding(Expressions.instance().createValueBinding(valueExpression));
  +         }
            pageParameter.setConverterId(param.attributeValue("converterId"));
            String converterExpression = param.attributeValue("converter");
            if (converterExpression!=null)
  @@ -430,10 +434,19 @@
         {
            for ( Page.PageParameter pageParameter: page.getPageParameters() )
            {
  -            Object value = pageParameter.getValueBinding().getValue();
  +            ValueBinding valueBinding = pageParameter.getValueBinding();
  +            Object value;
  +            if (valueBinding==null)
  +            {
  +               value = Contexts.getPageContext().get( pageParameter.getName() );
  +            }
  +            else
  +            {
  +               value = valueBinding.getValue();
  +            }
               if (value!=null)
               {
  -               parameters.put(pageParameter.getName(), value);
  +               parameters.put( pageParameter.getName(), value );
               }
            }
         }
  @@ -447,9 +460,20 @@
         {
            for ( Page.PageParameter pageParameter: page.getPageParameters() )
            {
  -            if ( !overridden.contains(pageParameter.getName()) )
  +            if ( !overridden.contains( pageParameter.getName() ) )
  +            {
  +               ValueBinding valueBinding = pageParameter.getValueBinding();
  +               if (valueBinding==null)
  +               {
  +                  Object value = Contexts.getPageContext().get( pageParameter.getName() );
  +                  if (value!=null) 
  +                  {
  +                     parameters.put( pageParameter.getName(), value );
  +                  }
  +               }
  +               else
               {
  -               Object value = pageParameter.getValueBinding().getValue();
  +                  Object value = valueBinding.getValue();
                  if (value!=null)
                  {
                     Converter converter;
  @@ -464,7 +488,8 @@
                     }
                     Object convertedValue = converter==null ? 
                           value : converter.getAsString( facesContext, facesContext.getViewRoot(), value );
  -                  parameters.put(pageParameter.getName(), convertedValue);
  +                     parameters.put( pageParameter.getName(), convertedValue );
  +                  }
                  }
               }
            }
  @@ -480,6 +505,7 @@
         {
            for ( Page.PageParameter pageParameter: page.getPageParameters() )
            {         
  +            
               String[] parameterValues = requestParameters.get(pageParameter.getName());
               if (parameterValues==null || parameterValues.length==0)
               {
  @@ -505,7 +531,16 @@
               Object value = converter==null ? 
                     stringValue :
                     converter.getAsObject( facesContext, facesContext.getViewRoot(), stringValue );
  -            pageParameter.getValueBinding().setValue(value);
  +
  +            ValueBinding valueBinding = pageParameter.getValueBinding();
  +            if (valueBinding==null)
  +            {
  +               Contexts.getPageContext().set( pageParameter.getName(), value );
  +            }
  +            else
  +            {
  +               valueBinding.setValue(value);
  +            }
            }
         }
      }
  @@ -517,10 +552,14 @@
         {
            for ( Page.PageParameter pageParameter: page.getPageParameters() )
            {         
  -            Object object = Contexts.getPageContext().get(pageParameter.getName());
  +            ValueBinding valueBinding = pageParameter.getValueBinding();
  +            if (valueBinding!=null)
  +            {
  +               Object object = Contexts.getPageContext().get( pageParameter.getName() );
               if (object!=null)
               {
  -               pageParameter.getValueBinding().setValue(object);
  +                  valueBinding.setValue(object);
  +               }
               }
            }
         }
  
  
  



More information about the jboss-cvs-commits mailing list