[jboss-cvs] jboss-seam/src/main/org/jboss/seam/core ...
Gavin King
gavin.king at jboss.com
Wed Nov 8 01:48:38 EST 2006
User: gavin
Date: 06/11/08 01:48:37
Modified: src/main/org/jboss/seam/core Pages.java
Log:
fix JBSEAM-473, convert page parametrs
Revision Changes Path
1.42 +30 -4 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.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- Pages.java 31 Oct 2006 20:09:21 -0000 1.41
+++ Pages.java 8 Nov 2006 06:48:37 -0000 1.42
@@ -277,12 +277,26 @@
return result;
}
+ public Map<String, Object> getConvertedParameters(FacesContext facesContext, String viewId)
+ {
+ return getConvertedParameters(facesContext, viewId, Collections.EMPTY_SET);
+ }
+
public Map<String, Object> getParameters(String viewId)
{
- return getParameters(viewId, Collections.EMPTY_SET);
+ Map<String, Object> parameters = new HashMap<String, Object>();
+ for ( Page.PageParameter pageParameter: getPage(viewId).getPageParameters() )
+ {
+ Object value = pageParameter.valueBinding.getValue();
+ if (value!=null)
+ {
+ parameters.put(pageParameter.name, value);
+ }
+ }
+ return parameters;
}
- public Map<String, Object> getParameters(String viewId, Set<String> overridden)
+ public Map<String, Object> getConvertedParameters(FacesContext facesContext, String viewId, Set<String> overridden)
{
Map<String, Object> parameters = new HashMap<String, Object>();
for ( Page.PageParameter pageParameter: getPage(viewId).getPageParameters() )
@@ -292,7 +306,19 @@
Object value = pageParameter.valueBinding.getValue();
if (value!=null)
{
- parameters.put(pageParameter.name, value);
+ Converter converter;
+ try
+ {
+ converter = pageParameter.getConverter();
+ }
+ catch (RuntimeException re)
+ {
+ //YUCK! due to bad JSF/MyFaces error handling
+ continue;
+ }
+ Object convertedValue = converter==null ?
+ value : converter.getAsString( facesContext, facesContext.getViewRoot(), value );
+ parameters.put(pageParameter.name, convertedValue);
}
}
}
@@ -367,7 +393,7 @@
*/
public String encodePageParameters(String url, String viewId)
{
- Map<String, Object> parameters = getParameters(viewId);
+ Map<String, Object> parameters = getConvertedParameters( FacesContext.getCurrentInstance(), viewId );
return Manager.instance().encodeParameters(url, parameters);
}
More information about the jboss-cvs-commits
mailing list