1 /* 2 * $Id: EvalHelper.java 471754 2006-11-06 14:55:09Z husted $ 3 * 4 * Licensed to the Apache Software Foundation (ASF) under one 5 * or more contributor license agreements. See the NOTICE file 6 * distributed with this work for additional information 7 * regarding copyright ownership. The ASF licenses this file 8 * to you under the Apache License, Version 2.0 (the 9 * "License"); you may not use this file except in compliance 10 * with the License. You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17 * KIND, either express or implied. See the License for the 18 * specific language governing permissions and limitations 19 * under the License. 20 */ 21 package org.apache.strutsel.taglib.utils; 22 23 import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager; 24 25 import javax.servlet.jsp.JspException; 26 import javax.servlet.jsp.PageContext; 27 import javax.servlet.jsp.tagext.Tag; 28 29 /** 30 * This class is used in the <code>evaluateExpressions</code> method of each 31 * Tag class. It is used to process the original attribute value through the 32 * JSTL EL engine to produce an evaluated value. It provides functions to 33 * evaluate the expression assuming it is an Object, String, Integer, or 34 * Boolean result. 35 */ 36 public final class EvalHelper { 37 private EvalHelper() { 38 } 39 40 /** 41 * Evaluates the attribute value in the JSTL EL engine, returning the raw 42 * Object value of the evaluated expression. If the original expression 43 * is null, or the resulting value is null, it will return null. 44 */ 45 public static Object eval(String attrName, String attrValue, Tag tagObject, 46 PageContext pageContext) 47 throws JspException { 48 Object result = null; 49 50 if (attrValue != null) { 51 result = 52 ExpressionEvaluatorManager.evaluate(attrName, attrValue, 53 Object.class, tagObject, pageContext); 54 } 55 56 return (result); 57 } 58 59 /** 60 * Evaluates the attribute value in the JSTL EL engine, assuming the 61 * resulting value is a String object. If the original expression is 62 * null, or the resulting value is null, it will return null. 63 */ 64 public static String evalString(String attrName, String attrValue, 65 Tag tagObject, PageContext pageContext) 66 throws JspException { 67 Object result = null; 68 69 if (attrValue != null) { 70 result = 71 ExpressionEvaluatorManager.evaluate(attrName, attrValue, 72 String.class, tagObject, pageContext); 73 } 74 75 return ((String) result); 76 } 77 78 /** 79 * Evaluates the attribute value in the JSTL EL engine, assuming the 80 * resulting value is an Integer object. If the original expression is 81 * null, or the resulting value is null, it will return null. 82 */ 83 public static Integer evalInteger(String attrName, String attrValue, 84 Tag tagObject, PageContext pageContext) 85 throws JspException { 86 Object result = null; 87 88 if (attrValue != null) { 89 result = 90 ExpressionEvaluatorManager.evaluate(attrName, attrValue, 91 Integer.class, tagObject, pageContext); 92 } 93 94 return ((Integer) result); 95 } 96 97 /** 98 * Evaluates the attribute value in the JSTL EL engine, assuming the 99 * resulting value is an Boolean object. If the original expression is 100 * null, or the resulting value is null, it will return null. 101 */ 102 public static Boolean evalBoolean(String attrName, String attrValue, 103 Tag tagObject, PageContext pageContext) 104 throws JspException { 105 Object result = null; 106 107 if (attrValue != null) { 108 result = 109 ExpressionEvaluatorManager.evaluate(attrName, attrValue, 110 Boolean.class, tagObject, pageContext); 111 } 112 113 return ((Boolean) result); 114 } 115 }