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:23 UTC
svn commit: r1026719 - in /tomcat/taglibs/standard/trunk/compat/src: ./
main/ main/java/ main/java/org/ main/java/org/apache/
main/java/org/apache/taglibs/ main/java/org/apache/taglibs/standard/
main/java/org/apache/taglibs/standard/tag/ main/java/org/...
Author: jboynes
Date: Sun Oct 24 00:39:22 2010
New Revision: 1026719
URL: http://svn.apache.org/viewvc?rev=1026719&view=rev
Log:
Add JSTL 1.0 ForEach tag that uses javax.el to process EL expressions
Added:
tomcat/taglibs/standard/trunk/compat/src/
tomcat/taglibs/standard/trunk/compat/src/main/
tomcat/taglibs/standard/trunk/compat/src/main/java/
tomcat/taglibs/standard/trunk/compat/src/main/java/org/
tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/
tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/
tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/
tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/
tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/
tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/
tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ForEachTag.java
Added: tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ForEachTag.java
URL: http://svn.apache.org/viewvc/tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ForEachTag.java?rev=1026719&view=auto
==============================================================================
--- tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ForEachTag.java (added)
+++ tomcat/taglibs/standard/trunk/compat/src/main/java/org/apache/taglibs/standard/tag/compat/core/ForEachTag.java Sun Oct 24 00:39:22 2010
@@ -0,0 +1,76 @@
+package org.apache.taglibs.standard.tag.compat.core;
+
+import java.util.Collections;
+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.ForEachSupport;
+import org.apache.taglibs.standard.util.ExpressionUtil;
+
+/**
+ * JSTL 1.0 compatible implementation of <foreach> that uses JSP EL support.
+ */
+public class ForEachTag extends ForEachSupport {
+
+ private ValueExpression beginExpression;
+ private ValueExpression endExpression;
+ private ValueExpression stepExpression;
+ private ValueExpression itemsExpression;
+
+ public ForEachTag() {
+ }
+
+ @Override
+ public void release() {
+ beginExpression = null;
+ endExpression = null;
+ stepExpression = null;
+ itemsExpression = 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) {
+ rawItems = itemsExpression.getValue(pageContext.getELContext());
+ if (rawItems == null) {
+ rawItems = Collections.emptyList();
+ }
+ }
+ 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);
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org