Index: shale-validator/src/main/java/org/apache/shale/validator/faces/ValidatorScript.java =================================================================== --- shale-validator/src/main/java/org/apache/shale/validator/faces/ValidatorScript.java (revision 453789) +++ shale-validator/src/main/java/org/apache/shale/validator/faces/ValidatorScript.java (working copy) @@ -570,7 +570,7 @@ } } else { if (value != null && value instanceof String - && UIComponentTag.isValueReference((String) e.getValue())) { + && this.isValueReference((String) e.getValue())) { value = tagUtils.eval((String) e.getValue()); } @@ -652,4 +652,22 @@ writeValidationFunctions(writer, context); writeScriptEnd(writer); } + + /** + * Return true if the specified string contains an EL expression. + *

+ * This is taken almost verbatim from {@link javax.faces.webapp.UIComponentTag} + * in order to remove JSP dependencies from the renderers. + */ + private static boolean isValueReference(String value) + { + if (value == null) return false; + + int start = value.indexOf("#{"); + if (start < 0) return false; + + int end = value.lastIndexOf('}'); + return (end >=0 && start < end); + } + } Index: shale-validator/src/main/java/org/apache/shale/validator/faces/ValidatorInputRenderer.java =================================================================== --- shale-validator/src/main/java/org/apache/shale/validator/faces/ValidatorInputRenderer.java (revision 453789) +++ shale-validator/src/main/java/org/apache/shale/validator/faces/ValidatorInputRenderer.java (working copy) @@ -139,7 +139,7 @@ Map.Entry e = (Map.Entry) vi.next(); // only override if the var contains a value binding expression if (e.getValue() != null && e.getValue() instanceof String - && UIComponentTag.isValueReference((String) e.getValue())) { + && isValueReference((String) e.getValue())) { localVars.put(e.getKey(), tagUtils.eval((String) e.getValue())); @@ -179,5 +179,20 @@ return defaultRenderer.getRendersChildren(); } + /** + * Return true if the specified string contains an EL expression. + *

+ * This is taken almost verbatim from {@link javax.faces.webapp.UIComponentTag} + * in order to remove JSP dependencies from the renderers. + */ + private static boolean isValueReference(String value) + { + if (value == null) return false; + int start = value.indexOf("#{"); + if (start < 0) return false; + + int end = value.lastIndexOf('}'); + return (end >=0 && start < end); + } }