You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jb...@apache.org on 2010/10/24 02:39:53 UTC

svn commit: r1026720 - /tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ForTokensTag.java

Author: jboynes
Date: Sun Oct 24 00:39:53 2010
New Revision: 1026720

URL: http://svn.apache.org/viewvc?rev=1026720&view=rev
Log:
Add JSTL 1.0 ForTokens tag that uses javax.el to process EL expressions

Added:
    tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ForTokensTag.java

Added: tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ForTokensTag.java
URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ForTokensTag.java?rev=1026720&view=auto
==============================================================================
--- tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ForTokensTag.java (added)
+++ tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ForTokensTag.java Sun Oct 24 00:39:53 2010
@@ -0,0 +1,87 @@
+package org.apache.taglibs.standard.tag.compat.core;
+
+import javax.el.ExpressionFactory;
+import javax.el.ValueExpression;
+import javax.servlet.jsp.JspApplicationContext;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.JspFactory;
+
+import org.apache.taglibs.standard.tag.common.core.ForTokensSupport;
+import org.apache.taglibs.standard.util.ExpressionUtil;
+
+/**
+ * JSTL 1.0 compatible implementation of <fortokens> that uses JSP EL support.
+ */
+public class ForTokensTag extends ForTokensSupport {
+
+    private ValueExpression beginExpression;
+    private ValueExpression endExpression;
+    private ValueExpression stepExpression;
+    private ValueExpression itemsExpression;
+    private ValueExpression delimsExpression;
+
+    public ForTokensTag() {
+    }
+
+    @Override
+    public void release() {
+        beginExpression = null;
+        endExpression = null;
+        stepExpression = null;
+        itemsExpression = null;
+        delimsExpression = null;
+        super.release();
+    }
+
+    @Override
+    public int doStartTag() throws JspException {
+        if (beginSpecified) {
+            begin = (Integer) beginExpression.getValue(pageContext.getELContext());
+            validateBegin();
+        }
+        if (endSpecified) {
+            end = (Integer) endExpression.getValue(pageContext.getELContext());
+            validateEnd();
+        }
+        if (stepSpecified) {
+            step = (Integer) stepExpression.getValue(pageContext.getELContext());
+            validateStep();
+        }
+        if (itemsExpression != null) {
+            items = itemsExpression.getValue(pageContext.getELContext());
+            if (items == null) {
+                items = "";
+            }
+        }
+        if (delimsExpression != null) {
+            delims = (String) delimsExpression.getValue(pageContext.getELContext());
+            if (delims == null) {
+                delims = "";
+            }
+        }
+        return super.doStartTag();
+    }
+
+    public void setBegin(String begin) {
+        beginExpression = ExpressionUtil.createValueExpression(pageContext, begin, Integer.TYPE);
+        beginSpecified = true;
+    }
+
+    public void setEnd(String end) {
+        endExpression = ExpressionUtil.createValueExpression(pageContext, end, Integer.TYPE);
+        endSpecified = true;
+    }
+
+    public void setStep(String step) {
+        stepExpression = ExpressionUtil.createValueExpression(pageContext, step, Integer.TYPE);
+        stepSpecified = true;
+    }
+
+    public void setItems(String items) {
+        itemsExpression = ExpressionUtil.createValueExpression(pageContext, items, Object.class);
+    }
+
+    public void setDelims(String delims) {
+        delimsExpression = ExpressionUtil.createValueExpression(pageContext, delims, String.class);
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org