diff --git a/lib/src/main/java/rife/render/EncodeUrl.java b/lib/src/main/java/rife/render/EncodeUrl.java
index 05e3f85..c8abe66 100644
--- a/lib/src/main/java/rife/render/EncodeUrl.java
+++ b/lib/src/main/java/rife/render/EncodeUrl.java
@@ -41,10 +41,14 @@ public class EncodeUrl implements ValueRenderer {
*/
@Override
public String render(Template template, String valueId, String differentiator) {
+ String value;
if (template.hasValueId(differentiator)) {
- return StringUtils.encodeUrl(template.getValue(differentiator));
+ value = template.getValue(differentiator);
+ } else if (template.hasAttribute(differentiator)) {
+ value = template.getAttribute(differentiator).toString();
} else {
return "";
}
+ return StringUtils.encodeUrl(value);
}
}
diff --git a/lib/src/test/java/rife/render/TestEncode.java b/lib/src/test/java/rife/render/TestEncode.java
index edff752..6b580f7 100644
--- a/lib/src/test/java/rife/render/TestEncode.java
+++ b/lib/src/test/java/rife/render/TestEncode.java
@@ -23,11 +23,10 @@ import rife.template.TemplateFactory;
import static org.assertj.core.api.Assertions.assertThat;
class TestEncode {
- @Disabled("Until renderer can access beans")
@Test
void testEncodeUrl() {
var t = TemplateFactory.HTML.get("encodeUrl");
- t.setBean(new ValueBean("a test &"));
+ t.setAttribute("foo", "a test &");
var encodedValue = "a%20test%20%26";
assertThat(t.getContent()).isEqualTo(encodedValue + "
\n" + encodedValue);
}
diff --git a/lib/src/test/resources/templates/encodeUrl.html b/lib/src/test/resources/templates/encodeUrl.html
index 3fbe396..cf5a5f9 100644
--- a/lib/src/test/resources/templates/encodeUrl.html
+++ b/lib/src/test/resources/templates/encodeUrl.html
@@ -1,2 +1,3 @@
-
-{{v render:rife.render.EncodeUrl:value/}}
\ No newline at end of file
+
+{{v render:rife.render.EncodeUrl:foo/}}
+{{v foo/}}
\ No newline at end of file