[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